Processi con esecuzione prolungata

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

Questo monitoraggio controlla i processi di SQL Agent con esecuzione prolungata.

Knowledge Base article:

Riepilogo

Questo monitoraggio controlla i processi di SQL Agent con esecuzione prolungata. Se un processo è in esecuzione per un periodo superiore alla soglia configurata, viene generato un avviso o un messaggio di errore.

Cause

Uno stato di tipo non integro viene determinato nel caso in cui un processo di SQL Server Agent sia in esecuzione per un periodo superiore alla soglia definita. Ciò può indicare che si è verificato un problema con il processo.

SQL Server Agent è responsabile dell'esecuzione di attività di SQL Server in base a orari o intervalli pianificati, nonché del rilevamento di condizioni specifiche per le quali gli amministratori hanno definito un'azione, ad esempio la notifica tramite cercapersone o posta elettronica oppure un'attività in grado di risolvere tali condizioni. SQL Server Agent viene inoltre utilizzato per l'esecuzione di attività di replica definite dagli amministratori.

Per identificare il processo che ha causato lo stato di avviso o di errore, esaminare i dati del contesto per lo stato di avviso o di errore.

Soluzioni

Controllare SQL Server Management Studio per identificare i processi in esecuzione. Se questi processi sono in esecuzione per un periodo di tempo maggiore del necessario, sarà necessario esaminarli per individuare il motivo di tale comportamento.

Utilizzare sp_help_jobactivity per visualizzare le informazioni sui processi attualmente in esecuzione.

In alternativa, se è previsto che l'esecuzione dei processi di alcuni agenti sia prolungata:

Element properties:

TargetMicrosoft.SQLServer.2012.Agent
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.AgentLongRunningJobsProvider
RemotableTrue
AccessibilityPublic
Alert Message
Processi con esecuzione prolungata
Sono presenti processi agente con esecuzione prolungata nell'istanza di SQL {1} sul computer {0}. Questo può indicare un problema in uno o più processi.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Agent.LongRunningJobs" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Agent" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.AgentLongRunningJobsProvider" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.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>