¿Por qué las estadísticas de actualización de exploración completa usan el 100% de la CPU en SQL Server 2014 cuando usa quizás el 20% de la CPU en SQL Server 2008 R2, para las mismas tablas, con una capacidad de hardware similar?
He estado buscando MAXDOP
otras opciones y realmente no veo nada que destaque. Me doy cuenta de que podría haber configuraciones que podrían causar esto, pero las configuraciones son muy similares para ambas bases de datos (por ejemplo, MAXDOP
es 4 para ambas, y ambas tienen múltiples núcleos). Ambos son Enterprise Edition.
¿Hay algo "diferente" en SQL Server 2014 versus SQL Server 2008 R2 que pueda explicar esto? Tengo la opción de memoria al 90% para ambos servidores. ¿Alguna idea sobre qué buscar?
Ejecuto estadísticas de actualización con escaneo completo (100%) una vez por semana en dos servidores que usan SQL Server 2008 R2 / SP3 y SQL Server 2014 / SP2, y las bases de datos tienen la misma estructura. En el servidor 2008 R2, las estadísticas de actualización de dos tablas muy grandes tardan varias horas, que es lo que espero, pero la CPU permanece por debajo del 20% más o menos todo el tiempo. Sin embargo, en el servidor de 2014, la CPU alcanza el 100% durante aproximadamente 40 minutos. Las tablas son un poco más pequeñas en el servidor 2014. Veo esto usando los menús de análisis del Monitor SQL.
Aquí está la salida del archivo de registro de Ola en el SQL Server 2014, la CPU pasa al 100% de aproximadamente 2:10 a 2:45:
Date and time: 2017-06-24 02:10:20
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000005_15502E78] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:07:48
Date and time: 2017-06-24 02:18:08
Date and time: 2017-06-24 02:18:08
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000006_15502E78] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:32:22
Date and time: 2017-06-24 02:50:30
Aquí está la salida del archivo de registro de Ola en el SQL Server 2008 R2 para las dos estadísticas anteriores, pero la CPU alcanza quizás el 15%:
Date and time: 2017-06-24 03:30:32
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000003_0425A276] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:05:00
Date and time: 2017-06-24 03:35:32
Date and time: 2017-06-24 03:35:32
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000004_0425A276] WITH FULLSCAN
Outcome: Succeeded
Duration: 00:52:31
Date and time: 2017-06-24 04:28:03
No puedo ejecutarlos con el servidor maxdop = 1 ya que eso elimina toda la generación de planes paralelos, y eso podría dañar la aplicación. Planeo ir en la dirección opuesta y aumentarlo a 8 (hay 16 núcleos en la caja) y ver qué pasa. Puede ir más rápido para reducir el tiempo de vinculación de la CPU. Este trabajo se ejecuta mientras los usuarios ya no están.
fuente
tempdb
configuración es la misma? Se puede usar mientras seUPDATE STATISTICS
está ejecutando, por lo que también podría ser un problema.Respuestas:
Las actualizaciones de estadísticas pueden ir paralelas en función de muchas opciones diferentes en SQL Server:
En versiones posteriores de SQL Server (2016 y posteriores), esto se vuelve aún más complicado:
Como notó, su 2008R2 se va con un solo subproceso, mientras que el 2014 se está volviendo con varios subprocesos (terminando así más rápido, pero maximizando la CPU mientras se ejecuta).
Para encontrar el equilibrio adecuado para sus trabajos de estadísticas, piense en:
fuente
Respuesta wiki comunitaria :
La mejor suposición: el plan elegido para actualizar las estadísticas es paralelo o más paralelo en el cuadro 2014 que en el cuadro 2008 R2.
Las estadísticas de actualización paralelas
fullscan
han existido desde 2005, y para las estadísticas muestreadas a partir de 2016, vea Adiciones del optimizador de consultas en SQL Server 2016 por Gjorgji Gjeorgjievski en el Blog del motor de base de datos de SQL Server.Si tiene Enterprise Edition, puede usar el regulador de recursos para limitar la CPU que utiliza su trabajo de mantenimiento.
Considere también votar por el parámetro Agregar
MAXDOP
sugerencia de conexión a Actualizar estadísticas de Javier Villegas.Preguntas y respuestas relacionadas: Actualización de estadísticas paralelas
fuente