連載
» 2021年11月09日 05時00分 公開

実行プランの属性情報を出力するSQL Server動的管理ビューレファレンス(59)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、実行プランの属性情報の出力について解説します。

[伊東敏章,@IT]

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

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_exec_plan_attributes」における、実行プランの属性情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。

概要

 SQL Serverではクエリを実行する際には、クエリテキストや統計情報を使用してコンパイル処理が実行され、コンパイル結果は「実行プラン」としてプランキャッシュに保存されます。次回以降の実行では、コンパイル前にプランキャッシュが確認され、実行プランが保存されている場合にはコンパイルは行われません。

 実行プランにはツリー構造の実行計画が含まれますが、実行計画以外にも、データベースIDやセッション言語の情報、実行コンテキストの数などの属性情報が含まれています。

 「sys.dm_exec_plan_attributes」動的管理関数を使用すると、実行プランの属性情報を出力できます。

構文と引数

構文 sys.dm_exec_plan_attributes ( plan_handle )

引数名 データ型 説明
plan_handle varbinary(64) プランキャッシュに格納されている実行プランの一意の識別子
「sys.dm_exec_cached_plans」動的管理ビューを参照することで、プランキャッシュに格納された実行プランのプランハンドルを取得できる

出力内容

 結果は、属性ごとに1行のデータが出力されます。

列名 データ型 説明
attribute varchar(128) プランに関連付けられている属性の名前
(属性の一覧項参照)
value sql_variant プランに関連付けられている属性の値
is_cache_key bit この属性が、プランに対するキャッシュ参照キーの一部として使用されているかどうか

属性の一覧

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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