Que Es Un Clustered Index

6
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

description

clustered

Transcript of Que Es Un Clustered Index

Page 1: 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).

Page 2: Que Es Un Clustered Index

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.

Page 3: Que Es Un Clustered Index

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.

Page 4: Que Es Un Clustered Index

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.