7/17 Indices

Un índice nos ayuda en la recuperación de registros de una tabla, así como que nuestra base de datos tenga una consistencia.

Los índices que no permiten duplicados tampoco permitirán que dos registros tengan el mismo valor en los campos que componen dicho índice.

Estos los podemos encontrar bajo en nodo Field groups de las tablas:



Los índices están sincronizados con la base de datos.
Dentro de AX un índice puede ser activado o desactivado. Cuando un índice se desactiva se elimina de la base de datos y se crea si está habilitado.

Los índices están compuestos por uno o más campos. Se puede tener un número ilimitados de índices; pero no se aconseja tener muchos.


Crear un índice

Para crear un índice lo haremos como siempre; botón derecho sobre el nodo y en el submenú seleccionaremos  "New Index"


Una vez creado arrastraremos los campos que deseemos que formen parte del índice.




Las principales propiedades del índice son:

Name: Le indicaremos el nombre del índice. Por defecto se utilizará los nombres de los campos que forman el índice más el sufijo Idx.

Por ejemplo:

En la tabla PurchLine tenemos estos dos índices: PurchLineIdx y PurchStatusIdx (entre otros como podéis observar en la imagen), los cuales son nombrados con una mezcla de los nombres de los campos que lo forman más el sufijo Idx.


AllowDuplicates: Si le indicamos que Si permitirá que se duplique el valor para los campos que forman el indice, en caso contrario no va a permitir repetir el índice.

Enabled: Le indicará si el índice está habilitado o no, en caso que digamos que no este será eliminado de la base de datos.

Si vamos al SQL veremos que al sincronizar la tabla el índice será creado en ésta.

Por defecto Ax nos creará uno con el campo RecId.



Si os fijáis se puede ver el texto Unique y Clustered, seguro que os preguntéis que significa cada cosa.

Será Unique cuando el índice no permita duplicados y Non-Unique cuando los permita.

Los índices Non-Clustered tienen un puntero al dato, mientras que los Clustered tienen el dato, lo que a la hora de realizar búsquedas hacen que sean más rápidas.

¿Que sucede cuando un índice no permite duplicados e intentamos insertar un registro que ya existe?

Ax no nos permitirá hacerlo y mostrará un mensaje de advertencia.



Es una buena práctica y muy recomendada que el/los campo/s que forman parte del índice único en la tabla, esté marcado como obligatorio y que no permita su edición una vez creado.





Comentarios