Herramientas para identificar índices necesarios

8

Quiero crear los mejores índices para cada tabla en mi base de datos. ¿Hay alguna consulta o herramienta en SQL Server para ayudar con este proceso?

mehdi lotfi
fuente
1
Hay índices sugeridos, pero estos son muy limitados y aún deben ser evaluados por alguien que sepa lo que está haciendo. ¿Tiene una pregunta específica sobre indexación?
JNK
1
¿Hay una consulta / tabla en la que está teniendo un bajo rendimiento? Como JNK implicaba, solo debería agregar índices cuando sepa lo que está haciendo (y probarlo de todos modos). A menos que tenga razones para creer que una tabla necesita un índice (tabla enorme, consultas lentas, un índice agrupado obvio), no debería simplemente intentar agregarlos
Ben Brocka

Respuestas:

10

Sí, hay herramientas, como el asesor de ajuste del motor de base de datos. Se entrega con SQL Server y hace algunas cosas bastante desagradables:

  • Le permite considerar solo una carga de trabajo muy pequeña (incluso una sola consulta). Lo que luego sugerirá índices que pueden ayudar solo a esa pequeña carga de trabajo, sin tener en cuenta el resto de la carga de trabajo (los índices ayudan a acelerar algunas consultas, pero pueden ralentizar otras, especialmente insertar / actualizar / eliminar), sin importar el resto del ciclo económico.
  • A menudo recomendará índices redundantes que solo difieren en una columna final o en una columna incluida.
  • Realmente, realmente, realmente le gustan las columnas incluidas; creo que puede ser un fetiche.

El enfoque adecuado para el ajuste del índice es considerar toda su carga de trabajo durante un ciclo comercial completo. A veces es mejor recurrir a herramientas de terceros que reinventar la rueda. DBSophic hace un producto gratuito llamado Qure Workload Analyzer que creo que hace un trabajo mucho mejor que DTA, pero su herramienta con licencia (Qure Workload Optimizer) es absolutamente fenomenal en lo que hace. El año pasado escribí en un blog sobre cómo funciona la herramienta cuando se integra con SQL Sentry ).

También hay algunas otras opciones, por ejemplo, los índices faltantes se informan en los DMV, y también puede descubrir en qué índices se están escribiendo (por lo que ocupan espacio y afectan las operaciones de inserción / actualización / eliminación) pero nunca (o rara vez ) utilizado por las consultas de los usuarios:

Pero estos también necesitan la advertencia de que los DMV solo son válidos desde el último reinicio de SQL Server, y que no necesariamente cubrirán un ciclo comercial adecuado (y por lo tanto pueden faltar información vital

Aaron Bertrand
fuente
7

La herramienta de la que está hablando se denomina Asesor de ajuste de motor de base de datos (DTA para abreviar). Puede tomar una cantidad de entradas y dar recomendaciones sobre cosas como índices faltantes. Sin embargo, vale la pena señalar que estas son solo sugerencias y que se debe considerar cuidadosamente en lugar de seguir ciegamente las recomendaciones del DTA.

Enlace para el tutorial de DTA

También vale la pena señalar que hay DMV integrados para recopilar ese tipo de información:

Thomas Stringer
fuente