Preguntas Sobre Índices SQL Server
Preguntas Sobre Índices SQL Server
Empezando de la versión SQL Server 2008, un nuevo método fue introducido para mejorar
el problema de rendimiento de punteros renviados, al usar el comando ALTER TABLE
REBUILD, que va a reconstruir la tabla montón.
Para más información, ver el artículo Resumen de la estructura de la tabla de SQL Server.
Puedes imaginar una tabla de índice como un índice de un libro que te permite encontrar la
información requerida muy rápido en tu libro, en vez de leer todas las páginas del libro
para encontrar un ítem específico que estás buscando.
El nivel Raíz, que es el nodo superior, que contiene una sola página de índice,
forma en la cual SQL Server comienza su búsqueda de información.
El nivel Hoja, el nivel de fondo de los nodos que contiene la información de las
páginas que estamos buscando, con el número de páginas hoja que depende de la
cantidad de información almacenada en el índice.
Y finalmente el nivel Intermedio, uno o múltiples niveles entre en nivel raíz y el nivel
hoja que contiene los valores del índice clave y los punteros al siguiente nivel de
páginas intermedias, o las páginas de información hoja. El número de niveles
intermedios depende de la cantidad de información almacenada en el índice.
Creando un gran número de índices en una tabla de base de datos afecta la modificación
de datos (ej. Actualizaciones) operaciones de rendimiento. Cuando añades o modificas una
fila en la tabla subyacente, la fila también será ajustada apropiadamente en todas las tablas
relacionadas indexadas. Debido a esto, necesitas evitar crear un gran número de índices en
las tablas muy modificadas y crear el mínimo número de índices posible, con el menor
número posible de columnas en cada índice. Para cargas de trabajo Online Analytical
Processing (OLAP), en las cuales las tablas tienen requerimientos bajos de modificación,
puedes crear un gran número de índices que mejoran el rendimiento de las operaciones de
recuperación de datos.
Para más información, ver el artículo Diseño básico de índices SQL Server y directrices .
P8: ¿Por qué no es recomendado crear
índices en tablas pequeñas?
Toma al Motor SQL Server menos tiempo escanear la tabla subyacente que atravesar el
índice cuando se busca una información específica. En este caso, el índice no será usado
pero todavía va a afectar negativamente el rendimiento de las operaciones de modificación
de información, como siempre será ajustado al modificar la información de la tabla
subyacente.
Para más información, ver el artículo Diseño básico de índices SQL Server y directrices .
Para más información véase el articulo Diseño efectivo de índices agrupados SQL Server.
P14: ¿Por qué no es recomendado usar
columnas GUID y columnas CHARACTER
como índices clave Agrupados?
Para columnas GUID, que están almacenadas en las columnas UNIQUE IDENTIFIER, el
principal desafío que afecta el rendimiento de la clasificación del índice agrupado clave, es
la naturaleza del valor GUID que es más largo que los tipos enteros de información, con 16
bytes de tamaño, y que es generada en una manera aleatoria, diferentes del valor entero
IDENTITY que están aumentando continuamente.
Para más información véase el articulo Diseño efectivo de índices agrupados SQL Server.
Para más información véase el articulo Diseño efectivo de índices no agrupados SQL Server.
P16: ¿Cuál es la principal diferencia entre un
índice No agrupado que es construido en
una tabla Montón y un índice No agrupado
construido en una tabla Agrupada? Cuál es
la diferencia entre un RID Lookup y un Key
Lookup?
Si un índice No Agrupado es construido sobre una tabla Montón o vista (lee más sobre
vistas de Índices SQL Server, que no tienen índices Agrupados) los nodos del nivel hoja de
ese índice guardan valores de índice clave y punteros ID de fila (RID) a las localizaciones de
las filas en la tabla montón.
Por otro lado, si un índice No agrupado es creado sobre una tabla Agrupada, los nodos del
nivel hoja de ese índice contienen valores de índices clave No agrupados y claves
agrupadas par la tabla base, que son las localizaciones de las filas en las páginas de
información de índices Agrupados.
Las operaciones de RID Lookup son realizadas para recuperar el resto de la columnas que
no están disponibles en el índice de la tabla montón basadas en el ID de cada fila.
Una operación Key Lookup es realizada para recuperar el resto de las columnas que no
están disponibles en el índice del índice Agrupado, basado en la clave Agrupada de cada
fila.
Para más información véase Índices no agrupados de SQL Server con columnas incluidas.
Para más información, ver el artículo Uso de diferentes tipos de índices SQL Server.
Para más información ver el artículo: Uso de diferentes tipos de índices SQL Server.
Las operaciones de Reorganizar, reordena físicamente las páginas de nivel hoja de los
índices para corresponder el orden lógico de los nodos hoja. La reorganización del índice
siempre será realizada online. Microsoft recomienda arreglar los problemas de
fragmentación de índice al reconstruir el índice si el porcentaje de fragmentación del índice
excede el 30 %, donde se recomienda arreglar el problema de fragmentación del índice al
reorganizar el índice si el porcentaje de fragmentación del índice excede el 5 % y menos del
30 %.
Para más información, ver el artículo: Mantenimiento de índices SQL Server