4.3 Índices reorganización y reconstrucción.

4.3 Índices, reorganización y reconstrucción.

Manejo de índices:

El índice de una base de datos es una estructura alternativa de los datos en una tabla.

Su propósito radica en acelerar el acceso a los datos mediante operaciones físicas más rápidas y efectivas. En otras palabras, se mejoran las operaciones gracias a un aumento de la velocidad, permitiendo un rápido acceso a los registros de una tabla en una base de datos.

Existen diferentes tipos de índices algunos de ellos son:

 

§  Índices agrupados: definen el orden en que almacenan las filas de la tabla (nodos). La clave del índice agrupado es el elemento clave para esta ordenación, el índice agrupado se implementa como una estructura de árbol B que ayuda a que la recuperación de las filas a partir de los valores de las claves del índice agrupado sea más rápida. Se debe de tener en cuenta las columnas selectivas, columnas afectadas en consultas, Columnas accedidas "secuencialmente", Columnas implicadas en JOIN, GROUP BY y el acceso rápido a filas: lookups.

§  Índices no agrupados: tienen la misma estructura de árbol B que los índices agrupados, con   algunos   matices;   como   hemos   visto   antes,   en   los   índices agrupados, en el último nivel del índice (nivel de hoja) están los datos; en los índices   no-agrupados,   en   el   nivel   de   hoja   del   índice,   hay   un   puntero a la localización física de la fila correspondiente en el índice agrupado.

§  Índices   compuestos: los compuestos son un tipo de índice de varias columnas   de una tabla. Las columnas de un índice compuesto que deben aparecer en el orden que tenga más sentido para las consultas que recuperar datos y no necesita ser adyacente en la tabla.

§  Índices descendientes: Este tipo de índice almacena los datos en una columna o columnas de concreto en orden descendente. 

Reorganización de índices.

Un factor clave para conseguir una Entrada y Salida de disco mínima para todas las consultas de bases de datos es asegurarse de que se creen y se mantengan buenos índices. Un paquete puede usar la tarea Reorganizar índice para reorganizar los índices de una base de datos individual o de varias bases de datos.

La tarea Reorganizar índice encapsula la instrucción ALTER INDEX de Transact-SQL. Si elige compactar datos de objetos grandes, la instrucción utiliza la cláusula REORGANIZE WITH (LOB_COMPACTION = ON); en caso contrario, se establece LOB_COMPACTION en OFF.

Fragmentación de los Índices:

La fragmentación es consecuencia de los procesos de modificación de los datos (instrucciones INSERT, UPDATE y DELETE) efectuados en la tabla y en los índices definidos en la tabla.

Detección de Fragmentación:

El primer paso para decidir qué método de desfragmentación se va a utilizar consiste en analizar el índice para determinar el nivel de fragmentación. Si se usa la función del sistema sys.dm_db_index_physical_stats, se puede detectar la fragmentación de los índices de la base de datos thuban-homologada.

Reconstrucción de índices.

En este apartado se debe examinar y determinar qué índices son susceptibles de ser reconstruidos. Cuando un índice está descompensado se debe a que algunas partes de éste, han sido accedidas con mayor frecuencia que otras.

Blevel (branch level) es parte del formato del B-tree del índice e indica el número de veces que Oracle ha tenido que reducir la búsqueda en ese índice. Si este valor está por encima de 4 el índice deberá de ser reconstruido.

ALTER INDEX <index_name> REBUILD;

Para reconstruir una partición de un índice podríamos hacer los siguientes:

ALTER INDEX <index_name> REBUILD PARTITION <nb_partition> NOLOGGING;

Comando ALTER INDEX, se utiliza para cambiar o reconstruir un Índice existente en la base de datos. Para reconstruir un Índice bastaría con lazar la siguiente sentencia: ALTER INDEX REBUILD;

Comentarios