Questo monitoraggio controlla i processi di SQL Agent con esecuzione prolungata.
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.
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.
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:
Ignorare il monitoraggio per modificare le soglie per questa istanza di SQL specifica o per tutte le istanze
Disabilitare il monitoraggio di questa istanza di SQL specifica o di tutte le istanze
Target | Microsoft.SQLServer.2012.Agent | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.AgentLongRunningJobsProvider | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>