MSSQL Server Job Schedule Bilgilerini Görme

SQL Server’da tüm jobların schedule durumunu görmek için, msdb veritabanındaki sistem tablolarını sorgulayabilirsiniz. Bu tablolar, jobların planlama (schedule) bilgilerini içerir.

Aktif olan tüm  jobların schedule durumlarını sorgulayan bir SQL scripti:

USE msdb;
GO

SELECT 
    j.name AS Job_Name,
    s.name AS Schedule_Name,
    s.enabled AS Schedule_Enabled,
    s.schedule_id AS ScheduleID,
    s.schedule_uid,
    CASE s.freq_type
        WHEN 1 THEN 'One-time'
        WHEN 4 THEN 'Daily'
        WHEN 8 THEN 'Weekly'
        WHEN 16 THEN 'Monthly'
        WHEN 32 THEN 'Monthly (Relative)'
        WHEN 64 THEN 'Run when SQL Server Agent starts'
        WHEN 128 THEN 'Run when idle'
        ELSE 'Unknown'
    END AS Frequency_Type,
    s.freq_interval AS Frequency_Interval,
    s.freq_subday_type AS Subday_Frequency_Type,
    s.freq_subday_interval AS Subday_Frequency_Interval,
    RIGHT('0' + CAST(s.active_start_time / 10000 AS VARCHAR),2) + ':' + 
    RIGHT('0' + CAST((s.active_start_time / 100) % 100 AS VARCHAR),2) + ':' + 
    RIGHT('0' + CAST(s.active_start_time % 100 AS VARCHAR),2) AS Start_Time,
    RIGHT('0' + CAST(s.active_end_time / 10000 AS VARCHAR),2) + ':' + 
    RIGHT('0' + CAST((s.active_end_time / 100) % 100 AS VARCHAR),2) + ':' + 
    RIGHT('0' + CAST(s.active_end_time % 100 AS VARCHAR),2) AS End_Time
FROM 
    dbo.sysjobs j
JOIN 
    dbo.sysjobschedules js ON j.job_id = js.job_id
JOIN 
    dbo.sysschedules s ON js.schedule_id = s.schedule_id
WHERE 
    j.enabled = 1  -- Sadece aktif olan job'ları getir
ORDER BY 
    Job_Name, Schedule_Name;

Şimdi yukarıda bulunan kolonların ne işe yaradığını ne gibi bilgilere sahip olabileceğimize değinelim.

Job_Name: SQL Server Agent’te tanımlı olan işin (job) adı.

Schedule_Name:İşin çalışma zamanlamasının adı.

Schedule_Enabled: Zamanlamanın etkin olup olmadığını belirtir.

Frequency_Type: Zamanlamanın tekrarlama türünü belirtir. Günlük mü Haftalık mı aylık mı çalıştığını veya sadece 1 defamı(one time) çalışacağını görebiliriz.

Frequency_Interval: Zamanlamanın hangi gün veya günlerde tekrarlanacağını belirtir.

  • Günlük (Daily): Her gün çalışır. 1 olarak görülmektedir.
  • Haftalık (Weekly): Haftanın hangi günlerinde çalışacağını belirtir
  • Aylık (Monthly): Ayın hangi gününde çalışacağını belirtir (örneğin, 15 = ayın 15’inde).
Frequency Interval
1Pazar
2Pazartesi
4Salı
8Çarşamba
16Perşembe
32Cuma
64Cumartesi
62Cumartesi ve Pazar Hariç Her Gün
126Pazar Hariç Her Gün

Not: Eğer 68 görülürse bu ifade Cumartesi ve salı günü çalıştığını göstermektedir. Kısacası iki ifadenin toplamıdır.

Subday_Frequency_Type: Eğer bir job gün içinde birden fazla kez çalışacaksa, bu kolon işin ne kadar sıklıkla çalışacağını belirtir.

Subday_Frequency_Type Değerleri:

Değerin 1 olması: Belirlenen 1 zaman diliminde çalışmaktadır.

Değerin 2 olması: Her saniyede bir çalışmaktadır.

Değerin 4 olması: Her dakikada bir çalışmaktadır.

Değerin 8 olması: Her saatte 1 çalışmaktadır.

Eğer Subday_Frequency_Type = 8 ve Subday_Frequency_Interval = 1 ise, bu, işin saatte 1 defa  çalışacağı anlamına gelir.

Subday_Frequency_Interval: Gün içinde tekrarlama aralığını belirtir. Her 5 dakikada bir çalışacaksa bu değer 5 olmaktadır.Subday_Frequency_Type=4  bu değerin dakika cinsinden olduğunu göstermektedir.

Bu makalede MSSQL Server Job Schedule Bilgilerini Görme komutunu detaylı bir şekilde görmüş olduk. Başka bir makalede görüşmek dileğiyle..

“De ki: Hiç bilenlerle bilmeyenler bir olur mu?”Zümer sûresi-9

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir