Pregunta

Tengo contención tempdb (supongo, al menos) en uno de los servidores (SQL Server 2008 R2).

Tanto el bloqueador como los espera (10 de ellos) tienen el tipo de espera PAGELATCH_EX en la base de datos tempdb y el recurso de espera de todas las sesiones (bloqueador y espera) es "2:1:122".

Revisé los códigos SQL y vi que las variables de la tabla se crean en la mayoría de las sesiones y sospecho que ese podría ser el culpable.

Cualquier sugerencia sobre cómo diagnosticar más y aliviar este problema es apreciada.

¿Fue útil?

Solución

PAGELATCH_XX: esto indica que SQL está esperando el acceso a una página de base de datos, pero la página no está experimentando E/S física.Esta clase de problema es causada por una gran cantidad de spids que intentan acceder a la misma página física al mismo tiempo.El recurso de espera es el número de página (el formato es dbid:file:pageno) al que se accede.Si realiza el diagnóstico en un servidor en vivo, los informes del Panel de rendimiento ejecutarán DBCC PAGE y mostrarán el resultado para indicarle para qué objeto y tipo de página es la disputa (asignación, datos, texto, ...)

Dado que las páginas en las que SQL espera con mayor frecuencia se encuentran en la base de datos tempdb (número de página en dbid 2), es posible que se enfrente a una contienda de bloqueo temporal de asignación de tempdb.

La contención de pestillo de la página de asignación de tempdb puede ocurrir con cargas de trabajo que crean y destruyen objetos temporales (incluidas tablas de trabajo/archivos de trabajo para operaciones de clasificación o hash) cientos o miles de veces por segundo.

Resolución -

1. Implementar indicador de rastreo -T1118.

2. Aumente la cantidad de archivos de datos en tempdb para maximizar el ancho de banda del disco y reducir la contención en las estructuras de asignación.Como regla general, si el número de procesadores lógicos es menor o igual a 8, utilice el mismo número de archivos de datos que procesadores lógicos.Si la cantidad de procesadores lógicos es superior a 8, use 8 archivos de datos y luego, si la contienda continúa, aumente la cantidad de archivos de datos en múltiplos de 4 (hasta la cantidad de procesadores lógicos) hasta que la contienda se reduzca a niveles aceptables o hagacambios en la carga de trabajo/código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top