クエリ プール キューの長さ

Microsoft.SQLServer.2012.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength (UnitMonitor)

このモニターは、SSAS インスタンスのクエリ プール キューのサイズが構成されているしきい値を超えるとアラートを生成します。

Knowledge Base article:

概要

このモニターは、クエリ プールのジョブ キューのサイズが、構成されたしきい値を超えた場合にアラートを生成します。キューに入れられるということは、ジョブそのものは高速で実行して戻るとしても、何らかの要求がプールからの空きスレッドを待っているために実行されていない可能性を示しています。

原因

使用可能なスレッドがクエリ プールから使い尽くされる状況は、いくつかの理由で発生することがあります。すなわち、サーバー設定が正しく構成されていないためにプールに影響が出ていたり、ユーザーによる要求またはインスタンス上のスケジュール済みジョブによる要求が異常なほど高度であるといったことです。

解決方法

このアラートを解決するには、ワークロードの要件、ユーザーおよびジョブのスケジュール、サーバー コンピューター上のその他のスケジュールされたプロセス、および使用可能なリソースなど (これらに限定されません)、数多くの要因を管理者が理解し、検討する必要があります。クエリ プールのジョブ キューの長さが、設定したしきい値を超えた状態を正すには、次のいずれかの処置が役立つことがあります。

外部資料

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

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

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

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

名前

説明

既定値

有効

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

はい

アラートを生成する

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

はい

間隔 (秒)

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

900

サンプル数

正常性状態は、しきい値違反数が違反の最小数以上になると変更されます。

4

同期時刻

24 時間形式で指定した同期時刻。省略可能です。

 

警告しきい値

正常性状態は、Analysis Services パフォーマンス カウンターがしきい値を超えると変更されます。

0

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

300

Element properties:

TargetMicrosoft.SQLServer.2012.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.AnalysisServices.MonitorType.Instance.CommonPerformanceData
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2012: 超過したクエリ プール ジョブ キューの長さ
コンピューター {0} 上の SSAS インスタンス {1} のクエリ プール ジョブ キューの長さが、構成されているしきい値を超えました。
現在のクエリ キューの長さ: {2}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.Instance" TypeID="Microsoft.SQLServer.2012.AnalysisServices.MonitorType.Instance.CommonPerformanceData" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/Value$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<PerformanceCounterName>Query pool job queue length</PerformanceCounterName>
<CounterName>Query pool job queue length</CounterName>
<Threshold>0</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>