Des transactions qui durent peuvent être à l’origine de blocage soudain intervenant de manière aléatoire (phénomènes stochastique). Il convient de les traquer et d’y répondre, soit en analysant la cause, soit en les tuant. Voici une requête permettant de les lister…
SET @MINUTES = 10; --> durée minimale en minutes depuis le démarrage de la transaction
WITH T AS
(
SELECT at.transaction_begin_time,
DATEDIFF(SECOND, at.transaction_begin_time, GETDATE()) AS DUREE_SECONDE,
login_time, host_name, program_name, login_name, transaction_state,
s.cpu_time, s.total_elapsed_time, s.reads, s.writes,
client_net_address, DB_NAME(dbid) AS DATABASE_NAME, text AS SQL_query
FROM sys.dm_tran_active_transactions AS at
JOIN sys.dm_tran_session_transactions AS st
ON at.transaction_id = st.transaction_id
JOIN sys.dm_exec_sessions AS s
ON st.session_id = s.session_id
JOIN sys.dm_exec_connections AS c
ON st.session_id = c.session_id
LEFT OUTER JOIN sys.dm_exec_requests AS r
ON st.session_id = r.session_id
OUTER APPLY sys.dm_exec_sql_text(most_recent_sql_handle)
WHERE transaction_type = 1 -- active
AND transaction_state IN (2, 7) -- écriture
AND transaction_begin_time < DATEADD(MINUTE, -@MINUTES, GETDATE())
)
SELECT *, CAST(CAST(CAST(DUREE_SECONDE/86400 AS DATETIME) AS INT) AS VARCHAR(10)) + ' jour '
+ RIGHT(CONVERT(CHAR(24), CAST(DUREE_SECONDE/86400.0 AS DATETIME), 121), 13) AS DUREE
FROM T
ORDER BY DUREE_SECONDE DESC;
Le paramètre @MINUTES sert à éviter de lister les requêtes durant moins de n minutes.
Vous pouvez changer la valeur de ce paramètre qui est à 10 minutes (une valeur déjà élevée).
La sortie fournit les informations suivantes :
- machine à l’origine
- applications à l’origine
- compte de connexion
- adresse réseau de la machine à l’origine
- base contuextelle
- requête SQL
- durée en Jour, Heure, Minutes, Seconde…
- diverses métriques de temps
Expert S.G.B.D relationnelles et langage S.Q.L
Moste Valuable Professionnal Microsoft SQL Server
Société SQLspot : modélisation, conseil, formation,
optimisation, audit, tuning, administration SGBDR
Enseignant: CNAM PACA, ISEN Toulon, CESI Aix en Prov.
L’entreprise SQL Spot
Le site web sur le SQL et les SGBDR