Je voudrais savoir s'il existe un moyen d'envoyer une notification en cas de blocage? Si oui, quelles requêtes seraient nécessaires. Je comprends que SQL Server s'occupe des blocages, je voudrais simplement des informations sur les requêtes impliquées.
J'ai trouvé ce qui suit pour déterminer les requêtes de longue durée:
SELECT
creation_time
,last_execution_time
,total_physical_reads
,total_logical_reads
,total_logical_writes
, execution_count
, total_worker_time
, total_elapsed_time
, total_elapsed_time / execution_count avg_elapsed_time
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
where total_elapsed_time >= 300000000 --5 min
ORDER BY total_elapsed_time / execution_count DESC;
Je voudrais savoir si ce qui précède est la bonne façon de procéder, ou existe-t-il une meilleure façon de déterminer si une requête prend plus de temps qu'un intervalle spécifique, par exemple 5 minutes, comme indiqué?
Merci