none
Monitorar JOB em execução RRS feed

  • Pergunta

  • Tenho problemas que alguns jobs ficam rodando infinitamente ou alguns que deveriam rodar em 10 minutos por exemplo, demoram 60. Como faço para criar um alert para isto. Já tem um que me notifica quando acontece erro. Mas no caso de demora não consegui achar nada. Desde já agradeço a ajuda. Anderson.
    • Movido Gustavo Maia Aguiar quinta-feira, 17 de setembro de 2009 21:24 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 16 de setembro de 2009 03:10

Respostas

  • Andreson,

    você pode fazer duas coisas
    1 - Criar output detalhado do job. Para todos jobs que crio, configuro log do job exatamente para ter controle sobre tempo e erros de execução. Esta eu acho a melhor opção.
    2 - Fazer consulta periódica na sysprocesses para verificar o que está rodando e por quanto tempo. Ex

    SELECT  last_batch,
       d.name ,
       p.status,
       cmd,
       program_name,
       hostname,
       loginame,
       lastwaittype
    FROM master..sysprocesses p INNER JOIN master..sysdatabases d
      ON p.dbid = d.dbid

    a coluna last_batch vai te indicar quando foi enviado o último comando para o servidor e lastwaittype o tipo de espera gerado. Status tb é importante para saber se algo realmente está rodando.

    Espero ter ajudado.

    Alex
    quarta-feira, 16 de setembro de 2009 12:27
  • Anderson, para testar os jobs do sql server que estão rodando a mais de um determinado periodo de tempo pode utilizar o select abaixo, então  pode criar outro job rodando de tempos em tempos enviando para seu e-mail o resultado dele.



    SELECT

     

    name JOB, start_execution_date Inicio, datediff("mi",start_execution_date, getdate()) [Minutos Rodando]

    FROM

     

    (msdb.dbo.sysjobactivity ja LEFT JOIN msdb.dbo.sysjobhistory jh ON ja.job_history_id = jh.instance_id)

     

    join msdb.dbo.sysjobs_view j on ja.job_id = j.job_id

    WHERE

    ja

    .session_id in (SELECT TOP(1) session_id FROM msdb..syssessions ORDER by agent_start_date DESC) and run_requested_date is not null and stop_execution_date is null

    and

     

    datediff("mi",start_execution_date, getdate()) > 60

    quarta-feira, 16 de setembro de 2009 13:10

Todas as Respostas

  • Andreson,

    você pode fazer duas coisas
    1 - Criar output detalhado do job. Para todos jobs que crio, configuro log do job exatamente para ter controle sobre tempo e erros de execução. Esta eu acho a melhor opção.
    2 - Fazer consulta periódica na sysprocesses para verificar o que está rodando e por quanto tempo. Ex

    SELECT  last_batch,
       d.name ,
       p.status,
       cmd,
       program_name,
       hostname,
       loginame,
       lastwaittype
    FROM master..sysprocesses p INNER JOIN master..sysdatabases d
      ON p.dbid = d.dbid

    a coluna last_batch vai te indicar quando foi enviado o último comando para o servidor e lastwaittype o tipo de espera gerado. Status tb é importante para saber se algo realmente está rodando.

    Espero ter ajudado.

    Alex
    quarta-feira, 16 de setembro de 2009 12:27
  • Anderson, para testar os jobs do sql server que estão rodando a mais de um determinado periodo de tempo pode utilizar o select abaixo, então  pode criar outro job rodando de tempos em tempos enviando para seu e-mail o resultado dele.



    SELECT

     

    name JOB, start_execution_date Inicio, datediff("mi",start_execution_date, getdate()) [Minutos Rodando]

    FROM

     

    (msdb.dbo.sysjobactivity ja LEFT JOIN msdb.dbo.sysjobhistory jh ON ja.job_history_id = jh.instance_id)

     

    join msdb.dbo.sysjobs_view j on ja.job_id = j.job_id

    WHERE

    ja

    .session_id in (SELECT TOP(1) session_id FROM msdb..syssessions ORDER by agent_start_date DESC) and run_requested_date is not null and stop_execution_date is null

    and

     

    datediff("mi",start_execution_date, getdate()) > 60

    quarta-feira, 16 de setembro de 2009 13:10
  • Olá,

    Segue um artigo que foi postado hoje no SSS:

    http://www.sqlservercentral.com/articles/SQL+Agent/67815/

    Abraços
    Demétrio Silva
    quarta-feira, 16 de setembro de 2009 14:32