11

En utilisant sys.dm_os_wait_stats J'ai identifié ce que je crois est un problème de verrouillageblocage/verrouillage des requêtes dans MS SQL (MSSQL)

wait type waittime pct  running ptc 
    LCK_M_RS_S 2238.54 22.14 22.14 
    LCK_M_S  1980.59 19.59 41.73 

Y at-il une manière que je peux trouver le blocage haut/verrouillage des requêtes? J'ai essayé d'interroger sys.dm_db_index_operational_stats sans beaucoup de chance.

Répondre

18

Vous trouverez peut cette requête utile:

SELECT * 
FROM sys.dm_exec_requests 
WHERE DB_NAME(database_id) = 'YourDBName' 
AND blocking_session_id <> 0 
+2

Oui j'ai fini manuellement et en appuyant sur F5 continuellement avec la requête suivante « SELECT * DE sys.dm_exec_requests CROSS APPLIQUER sys.dm_exec_sql_text (sql_handle) où blocking_session_id <> 0 » Je –

+7

encore la déclaration edited, de sorte que vous toujours obtenir le «vrai» coupable: 'SELECT * FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text (sql_handle) où session_id IN (SELECT blocking_session_id FROM sys.dm_exec_requests où DB_NAME (ID_bdd) = 'SDCS20' et blocking_session_id <> 0)' Certaines instructions bloquent parce qu'elles sont bloquées par autre chose, dans ce cas, blocking_session_id sera différent de l'identifiant session_id. –

3

Utilisez le script: sp_blocker_pss08 ou SQL Trace/Profiler et la classe d'événements Rapport du processus bloqué.

+0

Cela semble intéressant. Je vais essayer la prochaine fois que je rencontre ces problèmes –