連載
» 2021年08月31日 05時00分 公開

クエリプロセッサのバックグラウンドジョブに関する情報を出力するSQL Server動的管理ビューレファレンス(39)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、クエリプロセッサのバックグラウンドジョブに関する情報の出力について解説します。

[椎名武史,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_exec_background_job_queue」における、クエリプロセッサのバックグラウンドジョブに関する情報の出力について解説します。対応バージョンは、SQL Server 2008です。

概要

 SQL Serverは統計情報を参考に実行プランを作成しますが、統計情報が古い場合は最新の情報に更新してから実行プランを作成します。しかし、統計情報を更新してから実行プランを作成してクエリを実行すると、統計情報更新分のオーバーヘッドが発生してしまうため、クエリの実行とは非同期に統計情報を更新させることもできます。

 「sys.dm_exec_background_job_queue」を実行すると、クエリプロセッサのバックグラウンドジョブに関する情報を出力します。現在は、統計情報の非同期更新に関する操作のみ出力されます。

出力内容

列名 データ型 説明
time_queued datetime ジョブがキューに追加された時刻
job_id int ジョブID
database_id int ジョブが実行されるデータベースID
object_id1 int 値はジョブの種類によって異なる。統計の非同期更新の場合はテーブルまたはビューのID
object_id2 int 値はジョブの種類によって異なる。統計の非同期更新の場合は統計ID
object_id3 int 値はジョブの種類によって異なる。統計の非同期更新の場合は使用しない
object_id4 int 値はジョブの種類によって異なる。統計の非同期更新の場合は使用しない
error_code int ジョブが失敗し、再挿入された場合のエラーコード
request_type smallint ジョブ要求の種類
retry_count smallint ジョブがキューから取得され、リソース不足またはその他の理由で再挿入された回数
in_progress smallint ジョブが実行を開始したかどうかを示す。次のいずれかになる
 1=開始
 0=待機中
session_id smallint セッションID
pdw_node_id int Azure SQL Data WarehouseとParallel Data Warehouseのみ
 ノードID

動作例

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。