Блокирующие сеансы

Microsoft.SQLServer.2014.DBEngine.BlockedSPIDsMonitor (UnitMonitor)

Наблюдает за заблокированными сеансами экземпляра SQL. Примечание: по умолчанию этот монитор отключен. Если нужно его включить, то пользуйтесь переопределениями.

Knowledge Base article:

Сводка

Монитор заблокированных сеансов определяет, существует ли ситуация блокировки.

Блокировка возникает, если один сеанс удерживает блокировку конкретного ресурса, а второй сеанс пытается получить блокировку конфликтующего типа для того же ресурса. Блокировка является неизбежной отличительной чертой любой системы управления реляционными базами данных с параллелизмом на основе блокировок. Однако слишком большое количество блокировок может вызвать снижение производительности.

Причины

Когда блокировки достигают предела, при котором они оказывают существенное влияние на ухудшение производительности системы, это обычно происходит по одной из этих причин:

Решения

Альтернативный вариант, если блокируемые сеансы не связаны с базой данных:

См. также: “ INF: понимание и разрешение проблем блокировок SQL Server

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

Название

Описание

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

Включено

 

Нет

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

 

Да

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

Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс.

300

Число заблокированных сеансов

Максимально допустимое количество заблокированных сессий.

1

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

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

 

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

Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный.

300

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

Минимальная длительность выполнения процесса, прежде чем он отправляется для анализа заблокированных SPID.

1

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBEngine.BlockedSPIDs
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: заблокированный сеанс(-ы)
Сеансы {0} в экземпляре SQL Server "{1}" на компьютере "{2}" заблокированы. Дополнительные сведения см. на вкладке "Контекст предупреждения".
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.DBEngine.BlockedSPIDsMonitor" Accessibility="Public" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBEngine.BlockedSPIDs" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.DBEngine.BlockedSPIDsMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='BlockedSPIDList']$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Blocked" MonitorTypeStateID="Blocked" HealthState="Error"/>
<OperationalState ID="NotBlocked" MonitorTypeStateID="NotBlocked" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<WaitMinutes>1</WaitMinutes>
<NumberBlockedSPIDs>1</NumberBlockedSPIDs>
<TimeoutSeconds>300</TimeoutSeconds>
<InstanceName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</InstanceName>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
</Configuration>
</UnitMonitor>