Índices
Un índice es una
estructura definida y asociada con una tabla o una vista, permitiendo localizar
de forma rápida las filas de la tabla en base a su contenido en la columna
indexada acelerando la recuperación de filas de la tabla o de la vista. Su
funcionamiento es similar al de cualquier tipo de índice que conozcamos como el
de un libro donde nos servirá como un marcador, sobre una determinada columna y
la posición de la fila que contiene dicho valor dentro de la tabla.
Un índice ayuda al motor de
base de datos en la ubicación de los registros. Sin índices, una consulta
deberá buscar en cada uno de los registros de la tabla en orden hasta encontrar
coincidencias.
Tipos
de índices
Índice
simple
Un índice simple se refiere a
que está definido sobre una sola columna de la tabla
Índice
compuesto
Un índice compuesto está
formado por varias columnas de la misma tabla
Índice
agrupado
El término índice agrupado no
se debe confundir con índice compuesto, el significado es diferente.
Son índices que controlan el
orden físico de las filas en la tabla, por lo cual solo puede existir un índice
agrupado (CLUSTERED) para cada tabla.
Los índices agrupados ordenan
y almacenan las filas de los datos de la tabla o vista de acuerdo con los
valores de la clave del índice. Son columnas incluidas en la definición del
índice. Si una tabla no tiene un índice clúster, sus filas de datos están
almacenadas en una estructura sin ordenar denominada montón.
Índice
no agrupado
Un índice no agrupado
especifica la ordenación lógica de la tabla y tienen una estructura separada de
las filas de datos. Se pueden crear hasta 250 índices no agrupados si no existe
un índice agrupado en la tabla, si existe un índice agrupado solo se pueden
crear 249.
El índice no agrupado crea un
puntero o marcador que se denomina localizador de fila, si las páginas de datos
están almacenadas en un montón el localizador de filas es un puntero hacia la
fila. Si están en una tabla agrupada, el localizador de fila es la clave de
índice agrupada.
Tanto los índices agrupados
como los no agrupados pueden ser únicos. Esto significa que dos filas no pueden
tener el mismo valor para la clave de índice. De lo contrario, el índice no es
único y varias filas pueden compartir el mismo valor de clave.
El ejemplo más gráfico para
estos 2 tipos de índices son los directorios telefónicos:
Agrupados = páginas blancas
No Agrupados = páginas
amarillas
Las páginas blancas de la guía
telefónica tienen un índice agrupado por Apellido(s) y Nombres, con lo cual
puedo buscar de forma muy eficiente el número de teléfono de una persona si
conozco sus apellidos y su nombre, una vez que lo encuentro obtendré su número
de teléfono en forma inmediata pues el numero está al lado del nombre.
En el caso de las páginas
amarillas la forma de buscar es un poco distinta, en este caso busco por la
actividad económica (Un grupo muy general) y una vez allí busco las empresas
allí almacenadas para identificar cual cumple mis requisitos de búsqueda
guiándome por logos o tamaños más que por un nombre específico.
Fuentes: https://technet.microsoft.com/es-es/library/ms190457(v=sql.105).aspx
https://tololochile.wordpress.com/2008/10/01/indices-en-sql-server-%E2%80%93-parte-1-%E2%80%93-introduccion/
Buenas noches
ResponderEliminarTengo una duda espero puedan ayudarme a disiparla.
Solo los índices agrupados pueden ser considerados como columnas incluidas?
Saludos