Crear índices de atributo
Este tema se aplica a ArcGIS for Desktop Standard y ArcGIS for Desktop Advanced exclusivamente.
Agregar o modificar los índices de atributos en geodatabases ArcSDE no está disponible en ArcGIS for Desktop Basic.
Los índices de atributo pueden acelerar las consultas de atributo en las tablas y las clases de entidad. 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 o clase de entidad, cree índices de atributos para los campos sobre los cuales realiza consultas con frecuencia. Cree sólo los índices que sean realmente necesarios, ya que cada índice que agrega lentifica levemente las ediciones de la clase de entidad. Cada vez que edita la clase de entidad, ArcGIS también debe actualizar los índices. Si necesita editar frecuentemente un campo, evite, en lo posible, crear un índice para él. Para crear índices de atributos, acceda al cuadro de diálogo Propiedades en ArcCatalog o con geoprocesamiento. Una vez agregado un índice, se puede eliminar y volver a agregar en cualquier momento.
Los índices de atributos se pueden crear de distintas maneras. Se pueden crear para campos simples o múltiples; pueden ser únicos; y para algunas geodatabases, se pueden crear en orden ascendente o descendente. Este tema sólo proporciona una breve introducción a estos conceptos. Si elige una estrategia de indexado para una geodatabase de ArcSDE, consulte la documentación de DBMS para obtener una guía más detallada.
Crear índices de atributos en ArcCatalog
Los índices de atributos se pueden crear para campos simples o múltiples en una tabla o clase de entidad de geodatabase haciendo clic en el botón derecho del ratón en el nombre de la tabla en el árbol de catálogo y accediendo al cuadro de diálogo Propiedades.
- En el árbol de catálogo, haga clic con el botón derecho del ratón en la tabla o clase de entidad para la cual desea crear un índice y haga clic en Propiedades.
- Haga clic en la pestaña Índices.
- Haga clic en Agregar.
- Escriba un nombre para el índice nuevo.
- Marque la casilla de verificación Único si los valores del campo son únicos. Marque la casilla de verificación Ascendente para crear un índice ascendente.
Las opciones de configuración Único y Ascendente no se utilizan en las geodatabases de archivo y se pueden dejar desmarcadas. La opción Ascendente no se utiliza en las geodatabases de ArcSDE en Oracle. Las opciones de configuración Único y Ascendente no están disponibles para las geodatabases de ArcSDE en SQL Server.
- Haga clic en el campo o los campos para los que desea crear este índice.Nota:
Los índices multicolumnas no son compatibles en las geodatabases de archivos.
- Haga clic en el botón de flecha hacia la derecha para mover los campos a la lista Campos seleccionados.
- Utilice las flechas hacia arriba y hacia abajo para cambiar el orden de los campos en el índice.
- Haga clic en Aceptar.
- Haga clic en Aplicar para crear el índice o haga clic en Aceptar para crear el índice y cerrar el cuadro de diálogo Propiedades.
Crear índices de atributos utilizando geoprocesamiento
El conjunto de herramientas Índices en la caja de herramientas Administración de datos brinda dos herramientas principales para crear y quitar índices de atributos.
La herramienta Agregar índice del atributo agrega un índice simple o multicolumnas a una tabla, una clase de entidad o una clase de relación de atributo existente. Esto se encuentra disponible con cualquier licencia de ArcGIS.
La herramienta Quitar índice del atributo quita un índice simple o multicolumnas de una tabla, una clase de entidad o una clase de relación de atributo existente. Esto también se encuentra disponible con cualquier licencia de ArcGIS.
Nombres de índice de atributos
Cuando se nombra un índice en una geodatabase de ArcSDE, se recomienda dar al índice un nombre que refleje la tabla, o incluso la columna, que 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 IND al principio o al final del nombre. Por ejemplo, un índice en una tabla de direcciones se puede llamar DIR_APK_IND, donde DIR indica que este índice se encuentra en la tabla de direcciones, APK denota la columna que se está indexando e IND 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 de ArcSDE:
- 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. Los nombres de índice en las geodatabases personales no pueden contener espacios o palabras reservadas.
ArcGIS impone un límite de 16 caracteres para la longitud de los nombres de índices de atributos. El límite se basa en la longitud mínima permitida entre las bases de datos compatibles para facilitar la distribución y el uso compartido de los datos entre distintas geodatabases.
Índices únicos
La opción Único no se utiliza en las geodatabases de archivo y se puede dejar desmarcada. La opción Único está disponible para las geodatabases SQL Server ArcSDE; sin embargo, no está disponible en el cuadro de diálogo Agregar índice de atributos cuando los datos de origen son de una clase de entidad que está registrada como versionada.
Cuando crea un índice, se le ofrece la opción de crear el índice como único. Elija esta opción si el atributo tiene valores únicos en cada registro. Esto acelerará la ejecución de la consulta contra este atributo porque la base de datos puede detener la búsqueda después de encontrar el primer valor coincidente.
Tenga en cuenta, sin embargo, que no puede editar una clase de entidad que contenga un índice único en un campo definido por el usuario en una geodatabase personal. Además, no puede editar una clase de entidad que se encuentre en un dataset de entidad con otra clase de entidad que contenga un índice único en un campo definido por el usuario. Al intentar iniciar la edición de una geodatabase personal, ArcMap devuelve este error:
No se pudo editar ninguna de las capas del mapa. Verifique si alguna capa o tabla contiene un índice único en una columna administrada por el usuario.Si tiene un índice único en un campo de una geodatabase personal y necesita editarlo, utilice ArcCatalog para eliminar el índice único y volver a crearlo como un índice no único.
Índices ascendentes vs. descendentes
La opción Ascendente no se utiliza en los archivos o en las geodatabases de ArcSDE en Oracle y se puede dejar demarcada. La opción Ascendente está disponible para las geodatabases SQL Server ArcSDE; sin embargo, no está disponible en el cuadro de diálogo Agregar índice de atributos cuando los datos de origen son de una clase de entidad que está registrada como versionada.
Cuando crea un índice, se le ofrece la opción de crear el índice como ascendente o, si no se marca la opción, como descendente. Un índice ascendente se mantiene en orden ascendente. Por ejemplo, los nombres de ciudades Atenas, Berlín, Londres y París aparecerían en ese orden en un índice ascendente, mientras que en un índice descendente aparecerían como París, Londres, Berlín y Atenas.
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 vs. multicolumnas
Las geodatabases de archivos no admiten índices multicolumnas. Los cuadros de diálogo Propiedades de la clase de entidad y Propiedades de tabla no permiten especificar un índice multicolumnas. La herramienta Agregar índice del atributos y ArcObjects le permiten especificar un índice multicolumnas y aunque el índice que crea parece ser un índice multicolumnas cuando lo ve desde el cuadro de diálogo Propiedades de clase de entidad o Propiedades de tabla en ArcCatalog en realidad es un índice separado en cada campo.
Los índices se pueden crear para una columna o para múltiples columnas en una geodatabase personal o de ArcSDE. 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 sólo la columna A que lo que será para las consultas que incluyen sólo la columna B.
Decidir si crear un índice multicolumnas, un índice de una columna o una combinación de ambos tiene desventajas y la mejor decisión rara vez es evidente. Por lo general, sin embargo, existe una variedad de soluciones que pueden funcionar. Por ejemplo, si a veces realiza consultas sólo sobre la columna A, a veces sólo sobre la columna B y a veces sobre ambas columnas, puede elegir cualquiera de los siguientes enfoques:
- Crear dos índices separados en A y B.
- Crear un índice multicolumnas en A y B. Este índice generalmente será más eficiente para las consultas que incluyan ambas columnas. Para las consultas referidas sólo a A, este índice será más lento que un índice en A solamente. Este índice tendrá poco uso para las consultas que sólo involucren a B. Para compensarlo, puede crear un índice adicional en B.
- Crear los tres índices: un índice en A, uno en B y un índice multicolumnas en A y B. Esto tendrá sentido si los tres tipos de consultas son comunes y la tabla se consulta mucho más de lo que se actualiza.