Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Consulta de bloqueio do SQL Server


Oi,

Enquanto estiver usando seu programa conectado ao banco de dados SQL Server, você pode sentir lentidão no aplicativo relacionado ao banco de dados SQL Server. Esse problema provavelmente está relacionado ao bloqueio de sessão e bloqueio de banco de dados.





Para encontrar sessões ou consultas de bloqueio, execute o script a seguir. Se a consulta de bloqueio não for encerrada em pouco tempo, você poderá eliminá-la depois de perguntar ao cliente.


SELECT
db.name DBName,
tl.request_session_id,
wt.blocking_session_id,
OBJECT_NAME(p.OBJECT_ID) BlockedObjectName,
tl.resource_type,
h1.TEXT AS RequestingText,
h2.TEXT AS BlockingTest,
tl.request_mode
FROM sys.dm_tran_locks AS tl
INNER JOIN sys.databases db ON db.database_id = tl.resource_database_id
INNER JOIN sys.dm_os_waiting_tasks AS wt ON tl.lock_owner_address = wt.resource_address
INNER JOIN sys.partitions AS p ON p.hobt_id = tl.resource_associated_entity_id
INNER JOIN sys.dm_exec_connections ec1 ON ec1.session_id = tl.request_session_id
INNER JOIN sys.dm_exec_connections ec2 ON ec2.session_id = wt.blocking_session_id
CROSS APPLY sys.dm_exec_sql_text(ec1.most_recent_sql_handle) AS h1
CROSS APPLY sys.dm_exec_sql_text(ec2.most_recent_sql_handle) AS h2
GO