Bonsoir,
nous avons des blocages dans une base de données. Et je voudrais savoir si il existe une requête permettant identifier "la requête" qui poserait ce blocage.
mon prestataire m'a fournit une requête, pour identifier le blocage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 SELECT 'bloquante' AS "type", * FROM sys.sysprocesses AS p CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) WHERE p.dbid=DB_ID('xx') AND p.blocked=0 AND p.spid in ( SELECT DISTINCT b.blocked FROM sys.sysprocesses AS b WHERE b.dbid=DB_ID('xx') AND b.blocked<>0 ) UNION SELECT 'bloquée' AS "type", * FROM sys.sysprocesses AS p CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) WHERE p.dbid=DB_ID('xx') AND blocked <> 0 UNION SELECT 'bloquée' AS "type", *, 0 as "dbid", NULL as "objectid", NULL as number, 0 as encrypted, '' AS "text" FROM sys.sysprocesses AS p WHERE p.dbid=DB_ID('xx') AND blocked <> 0 AND p.sql_handle = 0
mais le problème c'est au niveau de la requête celle-ci change quand il y a le blocage. En fait quand j'identifie le blocage, je lance la requête cela m'indique la requête à l'instant T, mais si la personne change de menu dans l'application, la requête change et donc je ne vois pas la requête origine.
Est-ce qu'l y aurais une requete plus fine pour identifier ce blocage??
merci d'avance pour vos conseils
guigiu69
Partager