Длительные задания

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

Этот монитор проверяет длительные задания агента SQL Server.

Knowledge Base article:

Сводка

Этот монитор проверяет длительные задания агента SQL Server. Если задание выполняется дольше настроенного порогового значения, то создается предупреждение о состоянии «предупреждение» или «ошибка».

Причины

Неисправное состояние вызвано тем, что задание агента SQL Server выполнялось дольше заданного порога. Это может означать проблему с заданием.

Данный агент SQL Server отвечает за выполнение задач SQL Server, которые запланированы на конкретное время или через определенный интервал, а также за обнаружение определенных условий, для которых администраторами определено действие (например, предупреждение с помощью пейджеров или электронной почты) или задача, предназначенная для устранения этих условий. Агент SQL Server также используется для запуска задач репликации, определенных администраторами.

Чтобы определить, какое задание вызвало предупреждение или состояние ошибки, проверьте данные контекста предупреждения или изменения состояния.

Решения

Проверьте среду SQL Server Management Studio, чтобы узнать, какие задания выполняются. Если задания выполняются дольше необходимого, проверьте их, чтобы выяснить причины.

Чтобы получить сведения о выполняемых в данный момент заданиях, используйте процедуру sp_help_jobactivity.

Другие способы, если ожидается длительное выполнение некоторых заданий агента:

Element properties:

TargetMicrosoft.SQLServer.2008.Agent
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AgentLongRunningJobsProvider
RemotableTrue
AccessibilityPublic
Alert Message
Длительные задания
В экземпляре SQL Server {0} на компьютере {1} есть долго выполняющиеся задания агента. Это может указывать на проблему с одним или несколькими заданиями.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Agent.LongRunningJobs" Accessibility="Public" Enabled="false" Target="SQL2008Core!Microsoft.SQLServer.2008.Agent" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AgentLongRunningJobsProvider" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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="SQL!Microsoft.SQLServer.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="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<Threshold1>60</Threshold1>
<Threshold2>120</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>