Monitors the highest number of locks held by any transaction for a database.
Monitors the maximum number of locks acquired by any transaction for this database.
An unhealthy state is caused by the maximum number of locks approaching or exceeding the configured limit for the monitor.
Determine why a high level of resources are being consumed by a transaction for this database and take any corrective actions if necessary including breaking up larger transactions into smaller ones.
Adjust the configured limits using an override.
Disable the monitor
Target | Microsoft.SqlServer.Azure.Database | ||
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.Azure.UnitMonitorType.DatabaseLocksCount | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SqlServer.Azure.UnitMonitor.DatabaseLocksCount" TypeID="Microsoft.SqlServer.Azure.UnitMonitorType.DatabaseLocksCount" Target="Microsoft.SqlServer.Azure.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" Accessibility="Public" Enabled="false" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SqlServer.Azure.UnitMonitor.DatabaseLocksCount.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/ServerName$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='LocksCount']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<ServerName>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/ServerName$</ServerName>
<DatabaseName>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/DatabaseName$</DatabaseName>
<WarningThreshold>100000</WarningThreshold>
<CriticalThreshold>120000</CriticalThreshold>
</Configuration>
</UnitMonitor>