Analyser les temps d'exécution des jobs SQL Agent
Par Arian Papillon le dimanche 20 octobre 2013, 12:48 - Lien permanent
Une tâche courante du DBA : analyser les performances des tâches planifiées SQL
Agent et surveiller leur temps d'exécution au fil du temps.
Voici une requête qui vous permettra d'extraire ces informations de l'historique.
Voici une requête qui vous permettra d'extraire ces informations de l'historique.
La requête :
/*-------------------------------------------------------------------
[SCRIPT] Job History Analysis
[MAJ PAR] DATAFLY - Arian Papillon
[DATEMAJ] 20131001
-------------------------------------------------------------------*/
USE msdb
GO
--CREATE VIEW jobhistory_analysis as -- si vous voulez
SELECT j.name AS job_name
, step_id
, run_datetime = CONVERT(DATETIME, RTRIM(run_date))
-- + (run_time * 9 + run_time % 10000 * 6 + run_time % 100 * 10) / 216e4,
, run_duration = SUBSTRING(RIGHT('000000'
+ CONVERT(VARCHAR(6), run_duration), 6),
1, 2) + ':' + SUBSTRING(RIGHT('000000'
+ CONVERT(VARCHAR(6), run_duration),
6), 3, 2) + ':'
+ SUBSTRING(RIGHT('000000' + CONVERT(VARCHAR(6), run_duration), 6), 5,
2)
, run_duration_secs = CAST(SUBSTRING(RIGHT('000000'
+ CONVERT(VARCHAR(6), run_duration),
6), 1, 2) AS INT) * 3600
+ CAST(SUBSTRING(RIGHT('000000' + CONVERT(VARCHAR(6), run_duration), 6),
3, 2) AS INT) * 60
+ CAST(SUBSTRING(RIGHT('000000' + CONVERT(VARCHAR(6), run_duration), 6),
5, 2) AS INT)
, run_duration_min = CAST((
CAST(SUBSTRING(RIGHT('000000'+ CONVERT(VARCHAR(6), run_duration),6), 1, 2) AS DECIMAL(6, 2))* 3600
+ CAST(SUBSTRING(RIGHT('000000' + CONVERT(VARCHAR(6), run_duration), 6),3, 2) AS DECIMAL(6, 2)) * 60
+ CAST(SUBSTRING(RIGHT('000000' + CONVERT(VARCHAR(6), run_duration), 6),5, 2) AS DECIMAL(6, 2))
) / 60 AS DECIMAL(10, 2))
FROM msdb..sysjobhistory h
INNER JOIN msdb..sysjobs j ON h.job_id = j.job_id
WHERE run_status = 1
--
ORDER BY job_name, step_id, run_datetime
Il ne nous reste plus qu'à coller le résultat sous Excel et faire un tableau ou graphique croisé dynamique, en filtrant les jobs et les étapes qui nous intéressent :