Trabalhos de Longa Execução

Microsoft.SQLServer.2016.Agent.LongRunningJobs (UnitMonitor)

Este monitor verifica os trabalhos de longa execução do SQL Agent.
Observe que nenhuma edição do SQL Server Express dá suporte ao serviço Windows SQL Server Agent; não há objeto descoberto adequado. Esse monitor está desabilitado por padrão. Use substituições para habilitá-lo quando necessário.

Knowledge Base article:

Resumo

Este monitor verifica os trabalhos de longa execução do SQL Agent. Um alerta de aviso ou de erro será gerado se um trabalho estiver demorando mais do que o limite configurado.

Causas

Um estado não íntegro ocorre devido a um trabalho do SQL Server Agent que demorou mais do que o limite definido. Isso pode indicar um problema com o trabalho.

O SQL Server Agent é responsável pela execução de tarefas do SQL Server agendadas para ocorrer em horários ou intervalos específicos e pela detecção de condições específicas para as quais os administradores definiram uma ação, como alertar alguém por meio de páginas ou emails, ou uma tarefa que solucionará essas condições. O SQL Server Agent também é usado para executar tarefas de replicação definidas pelos administradores.

Para identificar o trabalho que ocasionou o estado de aviso ou de erro, examine os dados do contexto para obter a alteração do estado ou o alerta.

Resoluções

Verifique o SQL Server Management Studio para identificar os trabalhos que estão em execução. Se esses trabalhos estiverem demorando mais do que o necessário, investigue-os para descobrir o motivo.

Use o sp_help_jobactivity para obter informações sobre os trabalhos que estão em execução no momento.

Como alternativa, se for esperada a execução de alguns trabalhos do agente por um longo tempo:

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

Prioridade do Alerta

Define a Prioridade do Alerta.

Normal

Severidade do Alerta

Define a Severidade do Alerta.

MatchMonitorHealth

Limite crítico (minutos)

O estado do monitor será alterado para Crítico se o valor exceder esse limite. Se estiver entre esse limite e o limite de aviso (inclusive), isso fará com que o monitor fique estado de aviso.

120

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Não

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta.

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho.

600

Hora da Sincronização

A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido.

 

Tempo Limite (segundos)

Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha.

300

Limite de aviso (minutos)

Limite de aviso. Exceder esse limite resultará na alteração do estado do monitor, pelo menos para um estado de aviso.

60

Element properties:

TargetMicrosoft.SQLServer.2016.Agent
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.AgentLongRunningJobsProvider
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: Trabalhos de Longa Execução
Existem trabalhos de agentes de longa execução na instância do SQL {1} no computador {0}. Isso pode indicar um problema com um ou mais trabalhos.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Agent.LongRunningJobs" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Agent" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.AgentLongRunningJobsProvider" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Agent.LongRunningJobs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Success"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<Threshold1>60</Threshold1>
<Threshold2>120</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>