Usuário com melhor resposta
Retornar Tempo de um JOB

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 !!!
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
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
-
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