4.3 Índices, reorganización y reconstrucción
4.4. Manejo de índices
El índice de una base de datos es una estructura alternativa de los datos en una tabla. El propósito de los índices es acelerar el acceso a los datos mediante operaciones físicas más rápidas y efectivas. En pocas 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 hoja/página de datos de la imagen
anterior). 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. Debemos tener en cuenta:Columnas
selectivas, columnas afectadas en consultas, Columnas accedidas
"secuencialmente", Columnas implicadas en JOIN, GROUP BY y el Acceso
muy 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: es un í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.
4.4.2 Reorganizacion de índices
Un factor clave para conseguir una E/S 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.
4.4.3 Reconstrucción de índices
Se debe examinar y determinar qué índices son susceptibles
de ser reconstruidos. Cuando un índice está descompensado puede ser porque
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
Como hemos comentado esta sentencia 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;
Como hemos comentado esta sentencia 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;
a que chingados te refieres con E/S?
ResponderBorrarEntrada/Salida, es bastante común ver este tipo de abreviación en tópicos de programación o base de datos.
Borrar