Esta consulta, sirve para mostrar en forma de columnas, hora a hora, el tiempo de ejecucion de un Job determinado.
DECLARE @JobName VARCHAR(255) = 'Agent Job Name' ;WITH JobHistory AS ( SELECT @@servername as ServerName, a.run_date ,a.run_time / 10000 AS [HOUR] ,(a.run_duration / 10000 * 60 * 60 -- Hours + a.run_duration % 10000 / 100 * 60 -- Minutes + a.run_duration % 100 -- Seconds ) / 60.0 AS [DurationMinutes] FROM msdb.dbo.sysjobhistory a WITH(NOLOCK) INNER JOIN msdb.dbo.sysjobs b WITH(NOLOCK) ON a.[job_id] = b.[job_id] AND b.[name] = @JobName AND step_id = 0 AND run_status = 1 ) SELECT * FROM JobHistory PIVOT ( SUM(DurationMinutes) FOR [HOUR] IN ([00],[01],[02],[03],[04],[05] ,[06],[07],[08],[09],[10],[11] ,[12],[13],[14],[15],[16],[17] ,[18],[19],[20],[21],[22],[23]) ) AS p