He encontrado mucha información sobre qué STATISTICS
son: cómo se mantienen, cómo se pueden crear de forma manual o automática a partir de consultas o índices, y así sucesivamente. Pero no he podido encontrar ninguna orientación o información de "mejores prácticas" sobre cuándopara crearlos: qué situaciones se benefician más de un objeto ESTADÍSTICAS creado manualmente que de un índice. He visto estadísticas filtradas creadas manualmente que ayudan a las consultas en tablas particionadas (porque las estadísticas creadas para los índices cubren toda la tabla y no son por partición, ¡genial!), Pero seguramente debe haber otros escenarios que se beneficiarían de un objeto de estadísticas mientras no necesita el detalle de un índice, ni vale la pena el costo de mantener el índice o aumentar las posibilidades de bloqueo / bloqueo.
@JonathanFite, en un comentario, mencionó una distinción entre índices y estadísticas:
Los índices ayudarán a SQL a encontrar los datos más rápido al crear búsquedas que se ordenan de manera diferente a la tabla misma. Las estadísticas ayudan a SQL a determinar cuánta memoria / esfuerzo se necesitará para satisfacer la consulta.
Esa es una gran información, principalmente porque me ayuda a aclarar mi pregunta:
¿Cómo saber esto (o cualquier otra información técnica sobre la que S y cómo s relacionados con los comportamientos y naturaleza de STATISTICS
) ayudar a determinar cuándo elegir CREATE STATISTICS
más CREATE INDEX
, sobre todo cuando se crea un índice relacionado creará el STATISTICS
objeto? ¿Qué escenario sería mejor al tener solo la información ESTADÍSTICA y no tener el Índice?
Sería súper útil, si es posible, tener un ejemplo funcional de un escenario en el que el STATISTICS
objeto se ajuste mejor que un INDEX
.
Puesto que soy un aprendiz visual / pensador, pensé que podría ayudar a ver las diferencias entre STATISTICS
y INDEX
ES, de lado a lado, como un posible medio para ayudar a determinar cuándo STATISTICS
son la mejor opción.
Thingy PROs CONs
------- ---------- -------------------
INDEX * Can help sorts. * Takes up space.
* Contains data (can * Needs to be maintained (extra I/O).
"cover" a query). * More chances for blocking / dead-locks.
STATISTICS * Takes up very little space. * Cannot help sorts.
* Lighter maintenance / won't * Cannot "cover" queries.
slow down DML operations.
* Does not increase chances
of blocking / dead-locks.
Los siguientes son algunos recursos que encontré mientras buscaba esto, uno que incluso hace esta misma pregunta, pero no fue respondida:
Índice de SQL Server vs Estadística
Preguntas sobre estadísticas de SQL Server que fuimos demasiado tímidos para hacer
Estadística. ¿Son posibles los histogramas de varias columnas?
** Para ser claros, no tengo una respuesta para esto y en realidad estoy buscando recibir comentarios de algunas personas para proporcionar lo que parece ser una información extrañamente extraña aquí en las páginas web.