SQL Server’da Job’un Çalıştırılması Hakkında Bilgi Edinme

Herkese merhaba,

Bu yazıda sizlere SQL Server’da job’un çalıştırılması hakkında bilgi edinme üzerine bilgi vereceğim.

SQL Server’da oluşturmuş olduğunuz jobların çalıştırılması hakkında bilgi edinmek için aşağıdaki sorguyu kullanabilirsiniz.

Sorgumuz job adı, job’un son çalıştırılma zamanı, job’un son çalıştırılma durumu, job’un başarı ile çalıştırılıp çalıştırılmadığı gibi birçok bilgiyi tüm joblar için bize getirecektir.

SELECT [sJOB].[job_id] AS [JobID],
       [sJOB].[name] AS [JobName],
       CASE
           WHEN [sJOBH].[run_date] IS NULL
                OR [sJOBH].[run_time] IS NULL THEN
               NULL
           ELSE
               CAST(CAST([sJOBH].[run_date] AS CHAR(8)) + ' '
                    + STUFF(STUFF(RIGHT('000000' + CAST([sJOBH].[run_time] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') AS DATETIME)
       END AS [LastRunDateTime],
       CASE [sJOBH].[run_status]
           WHEN 0 THEN
               'Failed'
           WHEN 1 THEN
               'Succeeded'
           WHEN 2 THEN
               'Retry'
           WHEN 3 THEN
               'Canceled'
           WHEN 4 THEN
               'Running' -- In Progress 
       END AS [LastRunStatus],
       STUFF(STUFF(RIGHT('000000' + CAST([sJOBH].[run_duration] AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') AS [LastRunDuration (HH:MM:SS)],
       [sJOBH].[message] AS [LastRunStatusMessage],
       CASE [sJOBSCH].[NextRunDate]
           WHEN 0 THEN
               NULL
           ELSE
               CAST(CAST([sJOBSCH].[NextRunDate] AS CHAR(8)) + ' '
                    + STUFF(
                               STUFF(RIGHT('000000' + CAST([sJOBSCH].[NextRunTime] AS VARCHAR(6)), 6), 3, 0, ':'),
                               6,
                               0,
                               ':'
                           ) AS DATETIME)
       END AS [NextRunDateTime]
FROM [msdb].[dbo].[sysjobs] AS [sJOB]
    LEFT JOIN
    (
        SELECT [job_id],
               MIN([next_run_date]) AS [NextRunDate],
               MIN([next_run_time]) AS [NextRunTime]
        FROM [msdb].[dbo].[sysjobschedules]
        GROUP BY [job_id]
    ) AS [sJOBSCH]
        ON [sJOB].[job_id] = [sJOBSCH].[job_id]
    LEFT JOIN
    (
        SELECT [job_id],
               [run_date],
               [run_time],
               [run_status],
               [run_duration],
               [message],
               ROW_NUMBER() OVER (PARTITION BY [job_id] ORDER BY [run_date] DESC, [run_time] DESC) AS RowNumber
        FROM [msdb].[dbo].[sysjobhistory]
        WHERE [step_id] = 0
    ) AS [sJOBH]
        ON [sJOB].[job_id] = [sJOBH].[job_id]
           AND [sJOBH].[RowNumber] = 1
ORDER BY [JobName];

Sorguyu çalıştırdığınızda eğer daha önceden job oluşturdu iseniz aşağıdaki gibi bir sonuç göreceksiniz ya da daha fazla job hakkında daha fazla bilgi göreceksiniz.

SQL Server’da Job’un Çalıştırılması Hakkında Bilgi Edinme

Görüldüğü üzere bize job’un çalıştırılması ile ilgili çeşitli bilgileri sorgumuz bize getirmiş oldu. İhtiyacınıza göre kullanabilirsiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

305 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!