Количество блокируемых сеансов

Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber (UnitMonitor)

Монитор создает предупреждение, если количество сеансов, которые заблокированы в течение промежутка времени, указанного параметром WaitMinutes, превышает сконфигурированное пороговое значение.

Knowledge Base article:

Сводка

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

Причины

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

Решения

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

Внешнее

Настройка свойств сервера для служб Analysis Services

Документация TechNet по счетчикам производительности SSAS

Руководство по настройке производительности многомерных служб SSAS

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

Название

Описание

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

Включено

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

Истина

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

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

Истина

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

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

900

Число выборок

Состояние работоспособности изменяется, если количество нарушений порогового значения больше или равно минимальному количеству нарушений.

3

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

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

 

Критическое пороговое значение

Состояние работоспособности изменяется, когда количество заблокированных сеансов превышает пороговое значение.

10

Ожидание в минутах

Параметр "Ожидание в минутах" определяет максимальное время ожидания сессии для включения в наблюдение монитором.

1

Element properties:

TargetMicrosoft.SQLServer.2014.AnalysisServices.TabularDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.AnalysisServices.MonitorType.Database.BlockedSessionsNumber
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2014: превышено количество заблокированных сеансов
{1} сеансов заблокировано на более чем {0} минут, что превышает пороговое значение для данного предупреждения.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.TabularDatabase" TypeID="Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Database.BlockedSessionsNumber" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='WaitTime']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='BlockedSPIDCount']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<Threshold>10</Threshold>
<SampleCount>4</SampleCount>
<WaitMinutes>1</WaitMinutes>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>