ブロックされているセッション カウント

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

このモニターは、構成されている WaitMinutes 設定よりも長い期間ブロックされているセッション数が、構成されているしきい値を超えるとアラートを生成します。

Knowledge Base article:

概要

このモニターは、構成された WaitMinutes 設定よりも長い時間にわたってブロックされているセッションの数が、構成されたしきい値を超えた場合に、アラートを生成します。 あるセッションが特定のリソースに対してロックを保持しているときに、別のセッションが同じリソースに対して競合する種類のロックを獲得しようとすると、ブロックが発生します。ロックベースの同時実行を行うあらゆるデータベース管理システムにとって、ブロックは避けられない特性です。しかし、ブロックが多すぎるとパフォーマンスの問題の原因になりかねないので、管理者はこのモニターを使って、構成されたしきい値よりも多くの数のセッションで、構成された WaitMinutes 設定よりも長い時間にわたってこの状態が発生していることを検知できます。

原因

ブロックは、数多くの予期される理由によって発生しますが、データを消費するアプリケーションによって必要とされる、対応する機能性を何ら失うことなく改善を図れるようなシナリオで発生することもあります。

解決方法

サーバーにおけるブロックの問題の解決には、ワークロード、要件、ユーザーについての知識が必要とされ、管理者は修正のための適切な一連の処置を決定する際に、それらを考慮に入れる必要があります。ブロック問題の修正には、次のような多くの処置が含まれる可能性があります (ただし、これらに限られてはいません)。

外部資料

Analysis Services でのサーバーのプロパティの構成

SSAS パフォーマンス カウンターに関する TechNet 資料

SSAS 多次元パフォーマンス ガイド

上書き可能なパラメーター

名前

説明

既定値

有効

ワークフローを有効または無効にします

True

アラートを生成する

ワークフローがアラートを生成するかどうかを定義する

True

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

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>