Vorrei sapere se esiste un modo per inviare una notifica in deadlock? In tal caso quali domande sarebbero richieste. Comprendo che SQL Server si occupa dei deadlock, vorrei semplicemente informazioni sulle query coinvolte.
Ho trovato quanto segue per determinare le query di lunga durata:
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;
Mi piacerebbe sapere se quanto sopra è la strada giusta da percorrere, oppure esiste un modo migliore per determinare se una query richiede più tempo di un intervallo specifico, ad esempio 5 min come mostrato?
Grazie