Skip to content

Detalle de indices faltantes en SQL Server

27/11/2013
SQLServerLogo

El optimizador de consultas de SQL Server registra al momento de optimizar una consulta los índices que a su criterio serían beneficiosos para esta consulta. La información resultante se almacena en tablas del sistema que pueden ser accedidas a traves de una DMV (Dynamic Management View). La siguiente consulta nos devuelve como resultado los índices sugeridos a nivel de todo el servidor:

SELECT DB_NAME(I.database_id) as Base, T.name as Tabla,P.Rows as Filas,equality_columns,inequality_columns,included_columns
FROM sys.dm_db_missing_index_details I
JOIN sys.tables T ON I.object_id=T.object_id
JOIN sys.partitions P ON I.object_id = P.object_id AND P.index_id IN (0,1)
ORDER BY 1,3 DESC

Para construir un índice en base al resultado de la consulta, debemos incorporar en la clave de este índice los campos de la columna equality_columns y luego los de la columna inequality_columns, en el orden de selectividad de cada campo, comenzando siempre por los más selectivos. Los campos de la columna included_columns deben aparecer en la cláusula include del índice.

La documentación sobre la DMV utilizada está disponible aqui.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: