¿Cómo saber cuándo / si tengo demasiados índices?


26

Ejecutando Microsoft SQL Server Profiler de vez en cuando, me sugiere un montón de nuevos índices y estadísticas para crear ("... 97% de mejora estimada ...").

Según tengo entendido, cada índice agregado puede hacer que una SELECTconsulta SQL sea más rápida, pero también una consulta UPDATEo INSERTmás lenta ya que los índices deben ajustarse.

Lo que me pregunto es, ¿cuándo tengo "demasiados" índices / estadísticas?

Tal vez no haya una respuesta clara sobre esto, sino una regla general.



Gracias, @Nick. Busqué cuidadosamente en Google y dba.se.com antes de publicar mi pregunta. En mi opinión, esto no está relacionado. No quiero saber si se requiere un índice, sino cómo determinar cuándo se crean demasiados índices UPDATEy las INSERTdeclaraciones son demasiado lentas.
Uwe Keim

3
¿Leíste las respuestas allí? La respuesta aceptada, por ejemplo, enlaza con algunos scripts de análisis que pueden ayudarlo a identificar índices no utilizados que deben eliminarse. Puede que le resulte útil para responder a su pregunta sobre cuándo tiene "demasiados" índices.
Nick Chammas

Respuestas:


24

Su perfil de carga es el factor más importante para responder esta pregunta.

  • Si su carga es de lectura intensiva, desea que los índices satisfagan sus consultas más pesadas o frecuentes.

  • Si su carga es intensiva en escritura, indexe cuidadosamente. Índice para satisfacer las necesidades de búsqueda y ACTUALIZACIÓN, por ejemplo, así como sus uno o dos SELECT más caros.

  • Si su carga es OLAP, indexe con moderación ya que de todos modos escaneará las tablas de destino.

¿Cómo sabes que tienes demasiados índices?

  • Cuando puede ver que algunos de ellos no son utilizados por ninguna consulta.

  • Un DELETE, UPDATE o INSERT frecuente muestra un plan de consulta que involucra varios cambios costosos en el índice (es decir, una inserción , actualización o eliminación de índice no agrupado ). Use su criterio para determinar si la penalización de esas declaraciones DML vale la ganancia que obtiene de los índices que deben actualizarse.


8

Si tiene índices que se mantienen pero nunca se usan (o rara vez se usan), entonces debe tener muchos índices. Si todos sus índices se están utilizando para mejorar el rendimiento del usuario, entonces no tiene que tener muchos.


¿Puedo sugerir cambiar las dos ocurrencias de " a " a " también ", ya que no puedo editarlas ya que mi edición necesitaría cambiar un mínimo de 6 caracteres?
Uwe Keim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.