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 SELECT
consulta SQL sea más rápida, pero también una consulta UPDATE
o INSERT
má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.
sql-server
performance
index
index-tuning
Uwe Keim
fuente
fuente
UPDATE
y lasINSERT
declaraciones son demasiado lentas.Respuestas:
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.
fuente
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.
fuente