Skip to content

Obtener una lista de los índices poco utilizados en una base de datos de SQL Server

26/11/2013
SQLServerLogo

Cuando debemos optimizar el funcionamiento de una base de datos ya en funcionamiento, una de las cuestiones que debemos analizar es si todos los índices definidos son realmente necesarios y se utilizan por parte del motor. Con la siguiente consulta podemos obtener una lista de los índices que según las estadísticas generadas por el propio SQL Server, no tuvieron uso desde el último reinicio del servicio:

SELECT T.name as Tabla,I.name as Indice,P.rows as Filas,S.*
FROM sys.dm_db_index_usage_stats S
JOIN sys.tables T ON S.object_id=T.object_id
JOIN sys.indexes I ON I.object_id=T.object_id AND I.index_id=S.index_id
JOIN sys.partitions P ON I.object_id = P.object_id AND I.index_id = P.index_id
WHERE user_seeks=0 and user_scans=0 and i.name is not null
ORDER BY 3 desc

Modificado los valores en las condiciones de la clausula WHERE para los campos user_seeks y user_scans podemos modificar el resultado obteniendo índices de ningún uso (campo igualado a cero) o de poco uso, con un valor superior.

Dejar un comentario

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: