Como posso obter o status de um trabalho do agente sql?

1

Usamos uma tarefa do agente sql em execução no nosso servidor SQL 2000 para importar dados de nosso sistema de negócios a cada dez minutos. O trabalho executa várias etapas e geralmente leva de 5 a 6 minutos para ser executado. Esses dados são usados para vários processos de embalagem.

Isso geralmente ocorre sem problemas, mas às vezes temos problemas em que uma etapa fica 'paralisada', o que significa que não obtemos novos dados do sistema comercial.

Gostaria de exibir o status do trabalho em uma tela em nosso escritório para que possamos ver se há algum problema. Existe uma consulta que eu possa executar no banco de dados para retornar o status de um job, se ele estiver em execução, em que etapa está, por quanto tempo ele está em execução e quando será agendado em breve?

    
por Swinders 05.02.2010 / 00:27

3 respostas

2

O código abaixo lhe dará o status de todos os trabalhos e deve ser suportado daqui para frente, caso contrário, o uso do msdb..sysjobhistory deve fazer o truque.

exec msdb..sp_help_job -- gives you all jobs and a status for each
exec msdb..sp_help_job @job_id = 'job_id GUID from sysjobs'
exec msdb..sp_help_job @job_name = 'job name'
    
por 05.02.2010 / 21:43
1

O SQL Server Agent registra os dados do trabalho em msdb..sysjobhistory Você pode usar essa tabela para acompanhar o sucesso / fracasso do trabalho e das etapas do trabalho & veja se está funcionando.

Você pode usar msdb..sysjobschedules para trabalhar no próximo tempo de execução programado.

    
por 05.02.2010 / 15:28
0

Eu uso a seguinte consulta frequentemente para determinar o que está sendo executado em um servidor SQL. Não será específico para qual agente está sendo executado, mas dá uma ideia de quais consultas ou consultas específicas estão sendo executadas no momento:

USE Master
GO
select text, * from sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 order by 1
GO
    
por 05.02.2010 / 01:20

Tags