ana sayfa > Sql Server > MSSQL Server Jobları Hakkında

MSSQL Server Jobları Hakkında

PerÅŸembe, 01 Tem 2010 yorum ekle yorumlara git

MsSQL Server ‘da çalışan joblarla ilgili bilgi veren stored procedure’ler olduÄŸunu biliyor muydunuz?
Bu procedureler sp_help_job ve xp_sqlagent_enum_jobs olarak iki tane.

sp_help_job : Bu proceure çalıştırılınca joblarla ilgili bilgileri görebiliyorsunuz ancak bu procedure’un çıktısını herhangi bir tabloya insert edemiyorsunuz çünkü engellenmiÅŸ:)

Kullanımı oldukça basit:

  • Åžu anda çalışır durumdaki joblar için:
    exec msdb.dbo.sp_help_job @execution_status = 1
  • Tüm joblarla ilgili görüntülemek için:
    exec msdb.dbo.sp_help_job
  • Adını belirttiÄŸiniz jobla ilgili bilgiler için:
    exec msdb.dbo.sp_help_job @job_name = ‘JobAdi’

    xp_sqlagent_enum_jobs :Bu proceure çalıştırılınca joblarla ilgili bilgileri görebiliyorsunuz ve dönen result seti de bir tabloya insert edebiliyorsunuz.

    CREATE TABLE #JobBilgileri
    (
    JobID UNIQUEIDENTIFIER NOT NULL
    , LastRunDAte INT not null
    , LastRunTime INT not null
    , NextRunDate INT not null
    , NextRunTime INT not null
    , NextRunScheduleID INT not null
    , RequestedToRun INT not null
    , RequestSource INT not null
    , RequestSourceID varchar(100)
    , Running INT not null
    , CurrentStep INT not null
    , CurrentRetryAttempt INT not null
    , JobState INT not null
    )

    insert into #JobBilgileri
    exec master.dbo.xp_sqlagent_enum_jobs 1, JobSahibininAdi


    Tüm job bilgileri için
    :
    select j.* from #JobBilgileri j

    Şu anda çalışan joblar için:
    select s.name,j.* from #JobBilgileri j
    inner join msdb.dbo.sysjobs s on s.job_id = j.JobID
    where j.running = 1

    Şu anda çalışmayan joblar için:
    select s.name,j.* from #JobBilgileri j
    inner join msdb.dbo.sysjobs s on s.job_id = j.JobID
    where j.running = 0

    1. ÅŸimdilik yorum yok.
    1. şimdilik geri bağlantı yok