ArcGIS utiliza los índices para buscar datos rápidamente. Los índices de atributos se utilizan para buscar registros que coincidan con una consulta de atributos y los índices espaciales se utilizan para buscar entidades que coincidan con una consulta espacial.
Los índices de atributos pueden acelerar las uniones y otras consultas de atributos en tablas, clases de entidad, shapefiles o clases de relación de atributos. Un índice de atributo es una ruta alternativa utilizada por ArcGIS para recuperar un registro de una tabla. Para la mayoría de los tipos de consultas de atributos, es más rápido buscar un registro con un índice que comenzar por el primer registro y buscar en toda la tabla.
Una vez que tenga datos en una tabla, clase de entidad, shapefile o clase de relación con atributos, puede crear índices de atributos para los campos que consulta con frecuencia. Se recomienda que cree índices en columnas con valores únicos o casi únicos. Cada índice que agregue ralentiza ligeramente las ediciones en la tabla o clase de entidad. Cada vez que edita una clase de entidad o una tabla que contiene un índice de atributos, ArcGIS o el sistema de administración de bases de datos (DBMS) actualiza el índice. Evite crear un índice en un campo que se edite con más frecuencia de lo que se consulta o para campos que contengan pocos valores distintos, como Yes o No, ya que estos índices podrían ser contraproducentes para el rendimiento.
Puede crear índices de atributos en el cuadro de diálogo Propiedades en ArcGIS Pro o con la herramienta de geoprocesamiento Agregar índice de atributos. Una vez que se ha agregado un índice, puede eliminarlo y volver a agregarlo en cualquier momento.
Los índices de atributos se pueden crear para campos simples o múltiples; pueden ser únicos; y para algunas geodatabases, se pueden crear en orden ascendente o descendente. En esta página de ayuda solo se proporciona una breve introducción sobre estos conceptos. Si elige una estrategia de indexado para una geodatabase corporativa, consulte la documentación del DBMS para obtener una guía más detallada.
Crear un índice de atributos en el panel Catálogo
Los índices de atributos se pueden crear para un solo campo o para varios en un dataset haciendo clic con el botón derecho en el nombre de tabla o clase de entidad de geodatabase en el panel Catálogo y accediendo al cuadro de diálogo Propiedades.
Nota:
Al abrir la tabla de atributos en ArcGIS Pro, los campos indexados tienen un asterisco (*) por su nombre.
- En el panel Catálogo, haga clic con el botón derecho en la tabla, clase de entidad, shapefile o clase de relación con atributos para el cual desea crear un índice y seleccione Propiedades.
- Haga clic en la pestaña Índices.
La sección Índice de atributos muestra los índices existentes para este dataset.
Nota:
Al crear una tabla o una clase de entidad en ArcGIS, ArcGIS agrega un índice único al campo de Id. de objeto. El índice se denomina FDO_OBJECTID en geodatabases de archivos y geodatabases móviles. En las geodatabases corporativas, el índice se denomina r_#_sde_rowid_uk. La geodatabase utiliza el índice para identificar de forma única cada entidad o fila y no se puede eliminar.
- Para agregar un índice de atributo, haga clic en Agregar.
- Para Nombre, escriba el nombre para el índice nuevo.
- Opcionalmente, marque la casilla de verificación Único si los valores de campo son únicos. Marque la casilla de verificación Ascendente para crear un índice ascendente.
Los ajustes Único y Ascendente no se utilizan en geodatabases de archivos y se pueden dejar sin marcar.
- En la lista Campos disponibles, haga clic en el campo para el que desea crear este índice y haga clic en la flecha para mover el campo a la lista Campos seleccionados.
Para aplicar el índice a varios campos, repita este paso para cada campo que se vaya a indexar.
- Opcionalmente, si se han seleccionado varios campos, utilice las flechas hacia arriba y hacia abajo para cambiar el orden de los campos en el índice.
Consulte la Índices de una o varias columnas a continuación para obtener información sobre cómo determinar qué orden utilizar.
- Haga clic en Aceptar para generar el índice.
- Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades.
Crear un índice de atributos mediante una herramienta de geoprocesamiento
El conjunto de herramientas Índices de la caja de herramientas Administración de datos proporciona dos herramientas de índice de atributos: una para crear un índice de atributos y otra para quitar un índice de atributos.
La herramienta Agregar índice de atributos agrega un índice simple o multicolumna a una tabla, clase de entidad o clase de relación de atributos existente.
La herramienta Quitar índice de atributos elimina un índice simple o multicolumnas de una tabla, una clase de entidad o una clase de relación de atributos.
Nombres de índice de atributos
Cuando se nombra un índice, se recomienda dar al índice un nombre que refleje qué tabla o incluso qué columna indexa. Sin embargo, si el nombre de la tabla que se está indexando cambia, es probable que el nombre del índice que eligió ya no indique la tabla que está indexando. Algunas organizaciones creen que es útil dar al índice un nombre que indique que se trata de un índice, como por ejemplo incorporar IDX al principio o al final del nombre. Por ejemplo, un índice en una tabla de direcciones se puede llamar ADRS_APK_IDX, donde ADRS indica que este índice se encuentra en la tabla de direcciones, APK denota la columna que se está indexando e IDX hace que sea evidente que se trata de un índice.
Al igual que para los nombres de tablas, se deben respetar las siguientes características para los nombres de índices en las geodatabases:
- deben ser únicos en la base de datos
- deben comenzar con una letra
- No pueden contener espacios
- no pueden contener palabras reservadas
No hay restricciones en cuanto a cómo nombrar un índice de atributos en una geodatabase de archivos.
ArcGIS impone un límite de 16 caracteres para la longitud de los nombres de índices de atributos.
Índices únicos
Si cada valor de atributo de un campo es único, puede crear el índice como único. Esto acelera el tiempo de ejecución de las consultas en este campo de atributo porque la base de datos puede dejar de buscar después de encontrar el primer valor coincidente.
Cuando se define en varias columnas, puede crear un índice único si la combinación de valores en todas las columnas es única.
Nota:
No puede editar una clase de entidad que se encuentre en un dataset de entidades con otra clase de entidad que contenga un índice único en un campo definido por el usuario.
Índices ascendentes o descendentes
Al crear un índice, puede crear el índice como ascendente o descendente. Un índice ascendente se mantiene en orden ascendente. Por ejemplo, los valores de nombre de ciudad de Athens, Berlin, London y Paris aparecerían en ese orden en un índice ascendente, mientras que en un índice descendente aparecerían como Paris, London, Berlin y Athens.
En la mayoría de los casos, la dirección en la se mantiene el índice no hace la diferencia (o hace muy poca) en cuanto a la velocidad de recuperación, porque para la mayoría de las consultas, los índices se atraviesan con la misma eficiencia tanto hacia adelante como hacia atrás.
Índices simples o multicolumnas
Los índices se pueden crear para una columna o para múltiples columnas en una geodatabase. Los índices multicolumnas son útiles si especifica frecuentemente dos o tres campos juntos en una consulta. En este caso, el índice multicolumnas puede proporcionar un rendimiento de consulta más rápido que dos o tres índices separados, uno en cada campo.
El orden en que aparecen los campos en un índice multicolumnas es importante. En un índice multicolumnas, en donde la columna A precede a la columna B, la columna A se utilizará para conducir la búsqueda inicial. Además, tal índice será mucho más útil para las consultas que incluyen solo la columna A que lo que será para las consultas que incluyen solo la columna B.
Decidir si crear un índice multicolumnas, un índice de una columna o una combinación de ambos tiene desventajas, como se muestra en el siguiente ejemplo.
Si a veces realiza consultas sobre la columna A, a veces solo sobre la columna B y, a veces, ambas columnas, puede elegir cualquiera de los siguientes enfoques:
- Crear dos índices separados en A y B.
- Crear un índice multicolumna en A y B. Este índice generalmente será más eficiente para las consultas que incluyen ambas columnas. Para las consultas referidas solo a A, este índice será más lento que un índice en A solamente. Este índice sería de poco uso para las consultas que solo se refieren a B. Para compensarlo, podría crear un índice adicional en B.
- Cree los tres índices: un índice en A, uno en B y un índice multicolumna en A y B. Tendría sentido si los tres tipos de consultas son comunes y la tabla se consulta mucho más de lo que se actualiza.