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

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

Этот монитор проверяет наличие длительных заданий агента SQL.
Обратите внимание, что служба Windows агента SQL Server не поддерживается ни в одном из выпусков SQL Server Express; отсутствует подходящий объект для обнаружения. По умолчанию этот монитор отключен. Для его включения используйте переопределения.

Knowledge Base article:

Сводка

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

Причины

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

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

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

Решения

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

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

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

Переопределяемые параметры

Имя

Описание

Значение по умолчанию

Приоритет предупреждения

Определяет приоритет предупреждения.

Обычные

Серьезность предупреждения

Определяет серьезность предупреждения.

MatchMonitorHealth

Включено

Включает или отключает рабочий процесс.

Нет

Создает предупреждения

Определяет, создает ли рабочий процесс предупреждения.

Да

Интервал (в секундах)

Монитор использует скрипт для отслеживания длительных заданий. Это интервал (в секундах) между выполнениями скрипта.

600

Нижнее пороговое значение (в минутах)

Нижнее пороговое значение (в минутах) для этого монитора. По умолчанию при превышении этого порогового значения монитор перейдет по крайней мере в состояние предупреждения.

60

Время синхронизации

Время синхронизации указывается в 24-часовом формате и может быть опущено.

 

Время ожидания (в секундах)

Длительность периода (в секундах), в течение которого разрешено выполнение скрипта.

300

Верхнее пороговое значение (в минутах)

Верхнее пороговое значение (в минутах) для этого монитора. По умолчанию при превышении этого порогового значения монитор перейдет в критическое состояние. Нахождение между этим пороговым значением и нижним пороговым значением (включительно) приведет к тому (по умолчанию), что монитор будет находиться в состоянии предупреждения.

120

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>