sys.dm_exec_background_job_queue_stats (Transact-SQL)
非同期の (バックグラウンド) 実行に送信されたクエリ プロセッサのジョブごとに、集計統計を提供する 1 行のデータを返します。
列名 |
データ型 |
説明 |
---|---|---|
queue_max_len |
int |
キューの最大長。 |
enqueued_count |
int |
キューに正常に送信された要求の数。 |
started_count |
int |
実行を開始した要求の数。 |
ended_count |
int |
成功または失敗のどちらかに処理された要求の数。 |
failed_lock_count |
int |
ロックの競合またはデッドロックのために失敗した要求の数。 |
failed_other_count |
int |
その他の理由で失敗した要求の数。 |
failed_giveup_count |
int |
再試行の制限に達したために失敗した要求の数。 |
enqueue_failed_full_count |
int |
キューがいっぱいのため、キューの登録の試行に失敗した数。 |
enqueue_failed_duplicate_count |
int |
重複したキュー登録の試行の数。 |
elapsed_avg_ms |
int |
要求の平均経過時間 (ミリ秒単位)。 |
elapsed_max_ms |
int |
要求の最長経過時間 (ミリ秒単位)。 |
権限
サーバーに対する VIEW SERVER STATE 権限が必要です。
例
A. 失敗したバックグラウンド ジョブの割合を確認する
次の例では、実行されたすべてのクエリに対する失敗したバックグラウンド ジョブの割合を返します。
SELECT
CASE ended_count WHEN 0
THEN 'No jobs ended'
ELSE CAST((failed_lock_count + failed_giveup_count + failed_other_count) / CAST(ended_count AS float) * 100 AS varchar(20))
END AS [Percent Failed]
FROM sys.dm_exec_background_job_queue_stats;
GO
B. 失敗したキュー登録の試行の割合を確認する
次の例では、実行されたすべてのクエリに対する失敗したキュー登録の試行の割合を返します。
SELECT
CASE enqueued_count WHEN 0
THEN 'No jobs posted'
ELSE CAST((enqueue_failed_full_count + enqueue_failed_duplicate_count) / CAST(enqueued_count AS float) * 100 AS varchar(20))
END AS [Percent Enqueue Failed]
FROM sys.dm_exec_background_job_queue_stats;
GO