none
Retornar Tempo de um JOB RRS feed

  • Pergunta

  • Galera, to querendo retornar via tabelas de sistemas ou dmv´s , não sei, o tempo de um job que AINDA está rodando.  No job history eu consigo ver o status dele (in progress) e o tempo que está durando este job(com todos os steps, finalizados ou não), mas preciso disso via query..e não estou consguindo achar nas systems tables este tempo....Preciso disso pois temos  vários ambientes de carga para DW que trazem dados do Oracle e em alguns casos os jobs ficam roadno..rodando..rodando, diferenciando muito do ultimo tempo de execução. Este ultimo tempo eu já sei como pegar, e tendo este tempo do que esta rodando posso verificar se os dois se dferem muito, podendo acionar um email para verificação.

     

    Obrigado !!!

    sexta-feira, 6 de julho de 2007 01:18

Respostas

  •  

    vc. opode usar:

     

     

    Declare @Vjob_id sql_variant

    Select @Vjob_id = sysjobs.Job_ID From sysjobs where name = 'System - Transfer Portfolios'

        SELECT sjh.step_id, 
               sjh.step_name, 
               sjh.message, 
               sjh.run_status, 
               sjh.run_date, 
               sjh.run_time, 
               sjh.run_duration, 
               operator_emailed = so1.name, 
               operator_netsent = so2.name, 
               operator_paged = so3.name 
        FROM msdb.dbo.sysjobhistory                sjh 
             LEFT OUTER JOIN msdb.dbo.sysoperators so1  ON (sjh.operator_id_emailed = so1.id) 
             LEFT OUTER JOIN msdb.dbo.sysoperators so2  ON (sjh.operator_id_netsent = so2.id) 
             LEFT OUTER JOIN msdb.dbo.sysoperators so3  ON (sjh.operator_id_paged = so3.id), 
             msdb.dbo.sysjobs_view                 sj 
        WHERE (sj.job_id = sjh.job_id) 
          AND (@Vjob_id = sjh.job_id) 

     

    ou a proc mesmo

     

    EXECUTE msdb.dbo.sp_help_jobhistory @job_id = @Vjob_id, @mode = N'SEM'

     

    veja se e isso qualquer coisa retorne.

     

    Ab/s.

    • Marcado como Resposta Richard Juhasz quarta-feira, 8 de agosto de 2012 16:46
    sexta-feira, 6 de julho de 2007 10:34

Todas as Respostas

  • Olá LPJ,

     

    Vc já tentou usar a procedure sp_help_job? Qualquer coisa procure por sp_help_job no Books Online do SQL Server. Vc pode jogar o resultado dela em uma tabela temporária e aí trabalhar os dados que vc precisa.

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.combr

    sexta-feira, 6 de julho de 2007 01:41
    Moderador
  •  

    vc. opode usar:

     

     

    Declare @Vjob_id sql_variant

    Select @Vjob_id = sysjobs.Job_ID From sysjobs where name = 'System - Transfer Portfolios'

        SELECT sjh.step_id, 
               sjh.step_name, 
               sjh.message, 
               sjh.run_status, 
               sjh.run_date, 
               sjh.run_time, 
               sjh.run_duration, 
               operator_emailed = so1.name, 
               operator_netsent = so2.name, 
               operator_paged = so3.name 
        FROM msdb.dbo.sysjobhistory                sjh 
             LEFT OUTER JOIN msdb.dbo.sysoperators so1  ON (sjh.operator_id_emailed = so1.id) 
             LEFT OUTER JOIN msdb.dbo.sysoperators so2  ON (sjh.operator_id_netsent = so2.id) 
             LEFT OUTER JOIN msdb.dbo.sysoperators so3  ON (sjh.operator_id_paged = so3.id), 
             msdb.dbo.sysjobs_view                 sj 
        WHERE (sj.job_id = sjh.job_id) 
          AND (@Vjob_id = sjh.job_id) 

     

    ou a proc mesmo

     

    EXECUTE msdb.dbo.sp_help_jobhistory @job_id = @Vjob_id, @mode = N'SEM'

     

    veja se e isso qualquer coisa retorne.

     

    Ab/s.

    • Marcado como Resposta Richard Juhasz quarta-feira, 8 de agosto de 2012 16:46
    sexta-feira, 6 de julho de 2007 10:34