¿Actualizar estadísticas realmente disminuye el rendimiento?

¿Actualizar estadísticas realmente disminuye el rendimiento?

Tengo un sp_updatestats nocturno en una base de datos de producción, que parece funcionar bien, excepto por un proceso almacenado en particular que experimenta problemas de rendimiento después de la actualización.

El equipo de desarrollo está trabajando actualmente para arreglar el proceso (algunos índices nuevos y cierta reorganización de la consulta que recomendé), pero actualmente la única solución es hacer una

UPDATE STATISTICS [SuperGiantTable]
WITH FULLSCAN

Entonces, la pregunta es: ¿puedo forzar a sp_updatestats a realizar la opción "con escaneo completo"? ¿Yodesear¿a? De lo contrario, probablemente simplemente agregaré este comando UPDATE STATISTICS anterior para ejecutarlo inmediatamente después de sp_updatestats.

SQL 2000, por cierto.

Respuesta1

Como dijo KPWINC, "realmente depende".

Hay varios elementos más que influyen en la respuesta a su pregunta y que una respuesta general puede no ser apropiada.

Microsoft MSDN tiene entradas para sp_updatestats (http://msdn.microsoft.com/en-us/library/aa260337(SQL.80).aspx) y "ACTUALIZAR ESTADÍSTICAS" (http://msdn.microsoft.com/en-us/library/aa260645(SQL.80).aspx)

Para responder primero a sus últimas preguntas:

Debe volver a leer la entrada de SQLServerPedia. Específicamente:

La reconstrucción de su índice actualizará automáticamente las estadísticas del índice (con un tamaño de muestra del 100%, que generalmente es mejor que el que obtiene cuando usa sp_updatestats).Una vez completada la reconstrucción del índice, puede utilizar sp_updatestats para actualizar las otras estadísticas que requieren atención. (2005+).

Al mirar la documentación de ACTUALIZAR ESTADÍSTICAS (2000), se dice lo siguiente para el muestreo:

Nota El comportamiento predeterminado es realizar un análisis de muestra en la tabla de destino o en la vista indexada.SQL Server calcula automáticamente el tamaño de muestra requerido.

Kimberly Tripp ha recopilado algunas entradas de blog sobre estadísticas, índices y planes de mantenimiento de bases de datos (http://www.sqlskills.com/BLOGS/KIMBERLY/category/Statistics.aspx). Si bien usted puede o no utilizar directamente la información, la guía de cada entrada del blog debería serlo y los sitios a los que se hace referencia probablemente serán útiles.

Respuesta2

Realmente depende...

¿Cuántas bases de datos?

¿Qué tamaño tienen las bases de datos?

¿Cuánta actividad?

sp_updatestats (de forma predeterminada) actualiza las estadísticas con una frecuencia de muestreo predeterminada. Puede intentar usar la opción de remuestreo, pero eso solo funcionará si no se ha producido una actualización automática desde la última vez que actualizó las estadísticas (la actualización automática también usa una frecuencia de muestreo predeterminada).

Cuando se reconstruye un índice, las estadísticas se actualizan con un análisis completo y la mayoría de las personas ven un buen rendimiento después de una reconstrucción del índice.

Sólo en raras ocasiones las personas desactivan las funciones de estadísticas automáticas. Recomendaría dejarlo encendido.

Tenga un trabajo que se ejecute en un intervalo apropiado (que depende de sus patrones de modificación de datos para cada tabla) y realice una actualización manual de las estadísticas mediante un escaneo completo o alguna otra frecuencia de muestreo alta.

Generalmente iría de la siguiente manera:

Si se trata de una base de datos grande: copia de seguridad del registro de transacciones cada hora.

-- Respaldo diferencial diario. -- Desfragmentación diaria. - Estadísticas de actualización diaria.

-- Reindexar una vez por semana. -- Copia de seguridad completa una vez por semana.

Mucho depende de la base de datos y las transacciones.

Respuesta3

Una cosa más a tener en cuenta es que la frecuencia de muestreo calculada automáticamente puede hacer que el histograma y el vector de densidad generados no tengan en cuenta adecuadamente cualquier sesgo de datos que pueda tener, contra el cual opera el sproc.

¿Conoce la diferencia en los planes de consulta entre el sproc después de una actualización de estadísticas de muestra y una actualización de estadísticas de escaneo completo?

Otra cosa: tenga cuidado con los planes de mantenimiento que reconstruyen índices y luego actualizan las mismas estadísticas que se actualizaron como efecto secundario de la reconstrucción; puede terminar conPEORestadísticas, entonces si hubieras dejado las estadísticas actualizadas y de reconstrucción en paz.

Gracias

información relacionada