Esta es una situación extraña, pero espero que alguien tenga una respuesta.
Durante la resolución de problemas de rendimiento, agregamos un ÍNDICE NO CLUSTRADO a una tabla, según lo solicitado por sp_BlitzIndex
. Verificamos su uso al día siguiente, y mostró 0 lecturas ( 0 escaneos / búsquedas, 0 búsquedas simples ), por lo que lo deshabilitamos.
Al minuto siguiente, recibimos una queja de la misma lentitud de la aplicación (problemas de rendimiento) que estábamos tratando de verificar y resolver en primer lugar cuando agregamos el ÍNDICE.
Ahora, lo sé en teoría, esto suena pura coincidencia. El ÍNDICE fue demostrable, medible, NO UTILIZADO . Deshabilitarlo NO DEBE haber causado la degradación del rendimiento de la consulta. Pero es casi DEMASIADO casual.
Pregunta
Entonces mi pregunta, simplemente, es así:
¿Es posible que un ÍNDICE NO AGRUPADO, cuyas estadísticas de uso (de los DMV / sp_BlitzIndex
) muestran NO uso, todavía hayan estado ayudando de alguna manera al rendimiento de la consulta en la tabla afectada?
Respuestas:
Sí, podría hacerlo, cuando SQL Server decide que las estadísticas de ese índice son más precisas / útiles y usa esas estadísticas para hacer las estimaciones y elaborar un plan.
Me he encontrado con situaciones en las que SQL Server ha decidido usar estadísticas de un índice y escanear / buscar otro índice.
Editar: esto podría no ser aplicable porque me acabo de dar cuenta de que ha deshabilitado el índice. No he probado ese escenario.
fuente
CREATE STATISTICS
lugar deCREATE INDEX
.