sys.dm_exec_background_job_queue_stats (Transact-SQL)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
非同期 (バックグラウンド) 実行のために送信された各クエリ プロセッサ ジョブの集計統計を提供する行を返します。
Note
これを Azure Synapse Analytics または Analytics Platform System (PDW) から呼び出すには、 sys.dm_pdw_nodes_exec_background_job_queue_statsという名前を使用します。 この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
列名 | データ型 | 説明 |
---|---|---|
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 | 最も長い要求の経過時間 (ミリ秒)。 |
pdw_node_id | int | 適用対象: Azure Synapse Analytics、Analytics Platform System (PDW) このディストリビューションがオンになっているノードの識別子。 |
解説
このビューは、非同期更新統計ジョブについてのみ情報を返します。 非同期更新統計の詳細については、「 Statistics」を参照してください。
アクセス許可
SQL Server と SQL Managed Instance では、VIEW SERVER STATE
アクセス許可が必要です。
SQL Database の Basic、S0、S1 サービス対象、および Elastic Pool のデータベースの場合、サーバー管理者アカウント、Microsoft Entra 管理者アカウント、または ##MS_ServerStateReader##
サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE
アクセス許可または ##MS_ServerStateReader##
サーバー ロールのメンバーシップのいずれかが必要です。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE 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 + enqueue_failed_full_count + enqueue_failed_duplicate_count AS float) * 100 AS varchar(20))
END AS [Percent Enqueue Failed]
FROM sys.dm_exec_background_job_queue_stats;
GO
参照
動的管理ビューと動的管理関数 (Transact-SQL)
実行関連の動的管理ビューと関数 (Transact-SQL)