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

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockedSessionsNumber (UnitMonitor)

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

Knowledge Base article:

Сводка

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

Причины

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

Решения

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

Внешнее

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

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

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

Название

Описание

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

Включено

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

Да

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

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

Да

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

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

900

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

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

4

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

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

 

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

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

10

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

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

300

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

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

1

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockedSessionsNumber" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockedSessionsNumber" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Database.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.2008.AnalysisServices.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<Threshold>10</Threshold>
<SampleCount>4</SampleCount>
<WaitMinutes>1</WaitMinutes>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>