「Microsoft 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.