Que Es Un Clustered Index
-
Upload
franco-gutierrez -
Category
Documents
-
view
3 -
download
0
description
Transcript of Que Es Un Clustered Index
No.control:11030640 EDUARDO CAMACHO URISTA
QUE ES UN CLUSTERED INDEX:
Estos 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. Solo puede haber un índice clúster por cada tabla, porque las filas
de datos solo pueden estar ordenadas de una forma.
La única ocasión en la que las filas de datos de una tabla están ordenadas es
cuando la tabla contiene un índice clúster. Cuando una tabla tiene un índice
clúster, la tabla se denomina tabla agrupada. Si una tabla no tiene un índice
clúster, sus filas de datos están almacenadas en una estructura sin ordenar
denominada montón.
QUE ES UN NONCLUSTERED INDEX:
Estos tienen una estructura separada de las filas de datos. Un índice no clúster
contiene los valores de clave de índice no clúster y cada entrada de valor de
clave tiene un puntero a la fila de datos que contiene el valor clave.
El puntero de una fila de índice no clúster hacia una fila de datos se denomina
localizador de fila. La estructura del localizador de filas depende de si las
páginas de datos están almacenadas en un montón o en una tabla
agrupada. Si están 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
clúster.
Puede agregar columnas sin clave al nivel hoja de un índice no clúster con el
fin de eludir los límites existentes para las claves de índice, 900 bytes y 16
columnas de clave, así como para ejecutar consultas indizadas y totalmente
cubiertas.
DIFERENCIA ENTRE UN CLUSTERED Y UN NONCLUSTERED:
Los Non-Clustered normalmente son índices que ocupan menos espacio ya que
ellos almacenan un puntero a la página que contiene los datos en sí, en cambio
los índices Clustered en vez de almacenar un puntero tiene la página de datos
en él. A la hora de acceder a los datos ésta diferencia es muy importante,
porque nos ahorra tiempo y cantidad de acceso (Bookmark lookup).
No.control:11030640 EDUARDO CAMACHO URISTA
También vale la pena saber que los índices Clustered son utilizados para
ordenar de manera física la tabla en el disco, es decir, que si a una consulta no
le aplicamos la cláusula ORDER BY será ordenada por su Clustered Index por
defecto. Lo que quiere decir que sólo puede existir un sólo índice de éste tipo
por razones más que obvias -físicamente es posible ordenar de un sólo modo-.
Así que deben “quemar este cartucho” de la manera más eficiente posible.
La cuestión queda en ¿cómo saber cuándo usar un índice Clustered?
Normalmente el mejor candidato suele ser la clave primaria auto numeradas,
pero no siempre es así. Tampoco es muy recomendable que se lo utilice en
claves compuestas, pero lo que más debemos tener en cuenta que se debe
aplicar sobre el campo que más utilizado es en las cláusulas WHERE, GROUP
BY, ORDER BY.
La diferencia básica entre índices agrupados y no agrupados es que los
registros de un índice agrupado están ordenados y almacenados de forma
secuencial en función de su clave.
SQL Server crea automáticamente índices cuando se crea una restricción
"primary key" o "unique" en una tabla. Es posible crear índices en las vistas.
Resumiendo, los índices facilitan la recuperación de datos, permitiendo el
acceso directo y acelerando las búsquedas, consultas y otras operaciones que
optimizan el rendimiento general.
Tanto los índices clúster como los no clúster 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.
TIPOS DE INDICES:
Un índice es una estructura de disco asociada con una tabla o una vista que
acelera la recuperación de filas de la tabla o de la vista. Un índice contiene
claves generadas a partir de una o varias columnas de la tabla o la
vista. Dichas claves están almacenadas en una estructura (árbol b) que
permite que SQL Server busque de forma rápida y eficiente la fila o filas
asociadas a los valores de cada clave.
No.control:11030640 EDUARDO CAMACHO URISTA
HASH: Con un índice hash, se accede a los datos a través de una tabla hash en
memoria. Los índices hash utilizan una cantidad fija de memoria, que es una
función del número de depósitos. Directrices para usar índices en las tablas
con optimización para memoria
ÍNDICES NO CLÚSTER CON OPTIMIZACIÓN PARA MEMORIA: Para los
índices no clúster con optimización para memoria, el consumo de memoria
depende del número de filas y del tamaño de las columnas de clave de índice.
CLÚSTER: Un índice clúster ordena y almacena las filas de datos de la tabla o
vista por orden en función de la clave del índice clúster. El índice clúster se
implementa como una estructura de árbol b que admite la recuperación rápida
de las filas a partir de los valores de las claves del índice clúster.
NO CLÚSTER: Los índices no clúster se pueden definir en una tabla o vista con
un índice clúster o en un montón. Cada fila del índice no clúster contiene un
valor de clave no agrupada y un localizador de fila. Este localizador apunta a la
fila de datos del índice clúster o el montón que contiene el valor de clave. Las
filas del índice se almacenan en el mismo orden que los valores de la clave del
índice, pero no se garantiza que las filas de datos estén en un determinado
orden a menos que se cree un índice clúster en la tabla.
ÚNICO: Un índice único se asegura de que la clave de índice no contenga
valores duplicados y, por tanto, cada fila de la tabla o vista sea en cierta forma
única. La unicidad puede ser una propiedad tanto de índices clúster como de
índices no clúster.
ALMACÉN DE COLUMNAS: El índice de almacén de columnas en memoria
almacena y administra los datos mediante el almacenamiento de datos basado
en columnas y el procesamiento de consultas basado en columnas.
Los índices de almacén de columnas funcionan correctamente para las cargas
de trabajo de almacenamiento de datos que ejecutan principalmente cargas
masivas y consultas de solo lectura. Use el índice de almacén de columnas
para aumentar hasta en diez veces el rendimiento de las consultas en relación
con el almacenamiento tradicional orientado a filas, y hasta en siete veces la
compresión de datos en relación con el tamaño de los datos sin comprimir.
No.control:11030640 EDUARDO CAMACHO URISTA
ÍNDICE CON COLUMNAS INCLUIDAS: Índice no clúster que se extiende para
incluir columnas sin clave además de las columnas de clave.
ÍNDICE EN COLUMNAS CALCULADAS: Índice de una columna que se deriva
del valor de una o varias columnas, o algunas entradas deterministas.
FILTRADO: Índice no clúster optimizado, especialmente indicado para cubrir
consultas que seleccionan de un subconjunto bien definido de datos. Utiliza un
predicado de filtro para indizar una parte de las filas de la tabla. Un índice
filtrado bien diseñado puede mejorar el rendimiento de las consultas y reducir
los costos de almacenamiento del índice en relación con los índices de tabla
completa, así como los costos de mantenimiento.
ESPACIAL: Un índice espacial proporciona la capacidad de realizar de forma
más eficaz determinadas operaciones en objetos espaciales (datos espaciales)
en una columna del tipo de datos geometry. El índice espacial reduce el
número de objetos a los que es necesario aplicar las operaciones espaciales,
que son relativamente costosas.
XML: Representación dividida y persistente de los objetos binarios grandes
(BLOB) XML de la columna de tipo de datos xml.
TEXTO COMPLETO: Tipo especial de índice funcional basado en símbolos
(token) que compila y mantiene el motor de texto completo de Microsoft para
SQL Server. Proporciona la compatibilidad adecuada para búsquedas de texto
complejas en datos de cadenas de caracteres.