El Asesor de ajuste de la base de datos recomienda que cree un conjunto de estadísticas en mi base de datos. Soy algo así como SQL n00b, así que esta fue la primera vez que me encontré con una criatura así. La entrada en MSDN era un poco obtusa. ¿Alguien podría explicar qué hace exactamente esto, y por qué es una buena idea?¿Qué hace "Crear estadísticas" en SQL Server 2005?
Respuesta
Cost Based Query Optimisation es una técnica que usa histogramas y recuentos de filas para calcular de forma heurística el costo de ejecutar un plan de consulta. Cuando envía una consulta a SQL Server, la evalúa y genera una serie de Query Plans para la cual usa heurística para estimar los costos. A continuación, selecciona el plan de consulta más barato.
El optimizador de consultas utiliza las estadísticas para calcular el costo de los planes de consulta. Si las estadísticas faltan o están desactualizadas, no tiene datos correctos para estimar el plan. En este caso, puede generar planes de consulta moderados o altamente subóptimos.
SQL Server (en la mayoría de los casos) generará estadísticas en la mayoría de las tablas e índices automáticamente, pero puede complementarlas o forzar las actualizaciones. El asistente de ajuste de consultas supuestamente ha encontrado algunas estadísticas faltantes o uniones identificadas dentro de la consulta para las que se deberían agregar las estadísticas.
En pocas palabras, prepara su base de datos para funcionar de manera efectiva. Al tener estadísticas preparadas, su base de datos sabe (antes de que tenga que descubrir un plan de ejecución) cuál es probablemente su ruta más eficiente.
Básicamente solo actualiza SQL con qué tipo de indexación tiene, recuento de filas, etc. Esto ayuda a SQL a estimar mejor cómo ejecutar sus consultas. Mantener las estadísticas actualizadas es algo bueno.
Desde el BOL ...
Crea un histograma y asociados grupos densidad (colecciones) sobre el columna suministrado o conjunto de columnas de una tabla o vista indizada. Resumen de cadenas estadísticas también se crean en estadísticas construidas en char, varchar, varchar (max), nchar, nvarchar, columnas nvarchar (max), text y ntext . El optimizador de consultas utiliza esta información estadística para elegir el plan más eficiente para recuperar o datos de actualización. Las estadísticas actualizadas permiten que el optimizador con precisión evalúe el costo de diferentes planes de consulta y elija un plan de alta calidad.
El optimizador usa las estadísticas para determinar si se usa un índice específico para su consulta. Sin estadísticas, el optimizador no tiene una forma de saber cuántas de sus filas coincidirán con una condición dada, lo que hace que tenga que optimizar para el caso de "muchas filas", que podría ser menos que óptimo.
- 1. Estadísticas de SQL Server
- 2. SQL Server 2005 replicación
- 3. SQL Server 2008 a SQL Server 2005
- 4. SQL Server 2005: ¿Por qué nombrar transacciones?
- 5. Isoweek en SQL Server 2005
- 6. ¿Qué hace OBJECT_ID en SQL Server?
- 7. ¿Qué hace xp_qv en SQL Server?
- 8. Crear un nuevo usuario de db en SQL Server 2005
- 9. Cómo crear una restricción única compuesta en SQL Server 2005
- 10. Cómo crear un tipo de tabla en SQL Server 2005
- 11. ¿Cómo puedo crear un desencadenador deshabilitado en SQL Server 2005?
- 12. Consultas jerárquicas en SQL Server 2005
- 13. TransactionInDoubtException usando System.Transactions en SQL Server 2005
- 14. SQL Server 2005 ¿Cómo crear una restricción única?
- 15. Números persas en SQL Server 2005
- 16. ¿Dinámicamente nombrar índices en SQL Server 2005?
- 17. Cómo CLEAR ejecución de la consulta Estadísticas en SQL Server 2005/2008
- 18. Editar sinónimos en MS SQL Server 2005
- 19. Indexar varchar en MS SQL Server 2005
- 20. Índices de SQL Server: ascendente o descendente, ¿qué diferencia hace?
- 21. Restaurar SQL Server 2008 DB * a * SQL Server 2005
- 22. subconsultas en UPDATE SET (sql server 2005)
- 23. unen tres tablas en SQL Server 2005
- 24. UPSERT atómico en SQL Server 2005
- 25. instrucción IIF en SQL Server 2005
- 26. Concatene ntext en SQL Server 2005
- 27. degradación de SQL Server 2008 a SQL Server 2005
- 28. SQL Server 2008 compatibilidad con SQL Server 2005
- 29. SQL Server 2005 ROW_NUMBER() sin ORDER BY
- 30. SQL Server 2005 pérdida de precisión numérica
El último párrafo solo es técnicamente cierto: SQL Server no creará un Índice persistente de forma autónoma (es decir, 'CREATE INDEX') pero puede almacenar algunos datos en un" Index Spool "pero estos datos no se comparten entre diferentes ejecuciones de consultas . ver esta garantía de calidad: http://dba.stackexchange.com/questions/43772/why-dont-databases-create-the--own-own-indexes-automatically – Dai