El bloqueo ocurrió en una base de datos de nombre “DBL1”. Las otras 2, del usuario, no experimentaron el bloqueo.
La siguiente solapa (Waits) nos habla de los tipos de espera, en este caso bloqueos ocurridos,
Veamos cuáles son:
Como era de esperar el problema ha sido un bloqueo del tipo LCK_M_U.
También podemos analizar cuáles han sido los programas que han provocado el bloqueo.
En la solapa “Programs” nos permite averiguar el “culpable”.
Por razones de confidencia, no se muestra el nombre de la aplicación.
También podemos analizar los usuarios (“DB Users”) que han sufrido el loqueo:
Salteamos, por redundante, las solapas de “Machines”, nombre de las PC’S afectadas y sus sesiones (“Sessions”), pasando directamente a la solapa “Bloqueos”(Blockers).
(2*)
Finalmente descubrimos que el SPID 167, generado por el usuario “sa” desde la PC “Auditoria” es el responsable del bloqueo genérico.
¿Qué estaba ejecutando el SPID 167? Basta con un click en “Details” para obtener el siguiente gráfico:
La descripción es auto explicativa. No obstante si queremos visualizar la sentencia SQL, basta con un doble click en la barra roja.
Luego de analizar qué se estaba ejecutando, podemos estudiar quiénes fueron afectados por el bloqueo.
Basta con expandir en la figura 2*, el SPID 167.
En los dos gráficos anteriores, podemos ver los usuarios que han debido esperar hasta la finalización del proceso 167.
Por último les muestro las alertas que me permitieron conocer y resolver el problema en cuestión.
Tengo configurado varios tipos de alertas. Una de ellas se refiere a los bloqueos. Un doble click en “Alert Definition” muestra lo siguiente:
El alerta refiere al tipo LCK_M_S. Analizado cada 5 minutos, mails (sin necesidad de producto adicional alguno) a mi nombre, de acuerdo al tiempo que consuma el bloqueo.
Resumiendo: Les he desarrollado una sola de las múltiples posibilidades que IGNITE PI 8 de Confio, nos puede ayudar para resolver las tareas habituales de cualquier DBA.
En este específico caso fue suficiente un “kill 167, originado por un usuario fuera de horario habitual” para que el cliente pudiera seguir realizando sus tareas habituales.
Eso no es poca cosa.
Luis Martín
DBA
www.Sql-server-performance.com Moderator
]]>