En nuestros ambientes de SQL Server siempre se presentan los bloqueos, y esto es algo normal ya que es la manera que tiene SQL Server de mantener la integridad de nuestros datos. El problema viene cuando este bloqueo dura más de lo esperado, provocando que nuestras aplicaciones comiencen a experimentar problemas de desempeño. ¿ Cómo podemos encontrar quien está bloqueando la aplicación?

Voy a mostrar dos maneras de encontrar un bloqueo utilizando comandos.

sys.dm_exec_requests

La vista dinámica sys.dm_exec_requests muestra el detalle de todos los procesos ejecutandose en SQL Server. Si lo filtramos por la columna blocking_session_id podemos obtener el proceso que esta bloqueando a otros usuarios.

Muestra la sesión que esta generando el bloqueo.

USE master
GO
SELECT * FROM sys.dm_exec_requests WHERE blocking_session_id <> 0;
GO

Sobre esta misma vista podemos ver las víctimas de esta bloqueo, es decir aquellos usuarios que están esperando poder utilizar este recurso.

El siguiente comando nos muestra las sesiones bloqueadas.

USE master
GO
SELECT session_id ,status ,blocking_session_id,
wait_type ,wait_time ,wait_resource ,transaction_id
FROM sys.dm_exec_requests WHERE status = N'suspended';
GO

sys.dm_os_waiting_tasks

Esta vista dinámica muestra las tareas que están esperando por algún recurso.

USE master
GO
SELECT session_id, wait_duration_ms, wait_type, blocking_session_id
FROM sys.dm_os_waiting_tasks WHERE blocking_session_id <> 0
GO
Esto es todo lo que requieres para poder encontrar el causante del bloqueo.

Para poder realizar la consulta sobre estas tablas dinámicas, es necesario que se tenga el permiso "VIEW SERVER STATE" o ser administrador de la base de datos.

You are not authorised to post comments.

Comments powered by CComment

DBASupport - Foro

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 5 years ago.
  • 5 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
URGE AYUDA
  • Topic started by
  • in General
  • 18 years ago.
  • 18 years ago.
  • 30 replies
HOLA ESPERO ME PUEDAN AYUDAR. TEN GO UNA TABLA CON una estructura similar a la siguiente: id_mov cargo subtotal total...

Duada de Memoria de SQL Server 2005
  • Topic started by Erzengel
  • in General
  • 14 years ago.
  • 13 years ago.
  • 30 replies
Buen Día Recurro nuevamente a su sabiduría. Quiero saber el porque tiene un tope SQL Serever de 2GB en Windows server 2003 de 32 bit y si alguien...

SqlDateTime overflow
  • Topic started by
  • in General
  • 17 years ago.
  • 17 years ago.
  • 11 replies
Alguno de ustedes ha tenido este problema: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.' Les...

problemas para iniciar el agente sql
  • Topic started by acgch
  • in General
  • 17 years ago.
  • 17 years ago.
  • 11 replies
Recientemente para asegurar el sql server 2005, cree una cuenta sql con derechos de sysadmin y borre el grupo BUILTIN\Administradores para evitar...

Puerto de Enterprise Manager
  • Topic started by
  • in General
  • 16 years ago.
  • 16 years ago.
  • 12 replies
Hola, estoy tratando de acceder a mi enterprise manager de un oracle 10G, donde puedo ver en que puerto esta levantando para entrar desde mi...
Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 5 years ago.
  • 5 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
Deshabilitar todos los jobs
  • Topic started by agamez
  • in Jobs
  • 6 years ago.
  • 6 years ago.
  • 1 reply
Buenos días, alguien sabe como puedo deshabilitar rapidamente todos los jobs de SQL Server, gracias.

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 5 years ago.
  • 5 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...