XML プラン表示

更新 : 2005 年 12 月 5 日

Microsoft SQL Server 2005 では、プラン表示の実行プラン出力をさまざまな方法によって XML 形式で生成できます。XML 形式のプラン表示出力は、コンピュータ間で移動でき、SQL Server がインストールされていなくてもすべてのコンピュータで表示できます。また、XML 形式のプラン表示出力は XPath、XQuery、XSLT、SAX、DOM などの XML テクノロジを使用して、プログラムで処理することもできます。XML プラン表示処理は、XPath と XQuery 用のクエリ評価エンジンが組み込まれている SQL Server 2005 でサポートされます。

XML プラン表示出力は、次の方法を使用して生成できます。

  • SQL Server Management Studio のクエリ エディタ ツール バーで、[推定実行プランの表示] または [実際の実行プランを含める] をクリックします。
  • Transact-SQL プラン表示用 SET ステートメント オプションの SHOWPLAN_XML と STATISTICS XML を使用します。
  • トレースに SQL Server Profiler イベント クラスの Showplan XMLShowplan XML for Query CompileShowplan XML Statistics Profile を選択します。
  • sys.dm_exec_query_plan 動的管理関数を使用します。

XML プラン表示は、sys.dm_exec_query_plan を使用する場合を除いて、上記のどの方法でも nvarchar(max) データ型で返されます。動的管理ビューを使用するときは、XML プラン表示は xml データ型で返されます。

プラン表示の XML スキーマは、この Microsoft Web サイトで入手できます。

また、SQL Server 2005 がインストールされている次のディレクトリからも入手できます。

Microsoft SQL Server\90\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

ms189298.note(ja-jp,SQL.90).gifメモ :
クエリ オプティマイザによるクエリの最適化が途中で終了すると、XML プラン表示出力の StmtSimple 要素に StatementOptmEarlyAbortReason 属性が返されます。この属性に表示できる値は、TimeOutGoodEnoughPlanFound、および MemoryLimitExceeded です。この属性に TimeOut または GoodEnoughPlanFound が返された場合、操作は必要ありません。返されたプラン表示には、正しい結果が含まれます。 StatementOptmEarlyAbortReason 属性に MemoryLimitExceeded が返された場合、生成された XML プラン表示は正しくても最適ではないことがあります。次のいずれかの方法で、使用できるメモリを増やしてください。1) サーバーの負荷を軽減します。2) SQL Server で使用できるメモリを増やします。詳細については、「大規模データベースのメモリ管理」を参照してください。3) sp_configure で設定されている max server memory オプションを確認し、値が小さすぎる場合は大きくします。詳細については、「サーバー メモリ オプション」を参照してください。

Showplan XML スキーマについて

Showplan XML スキーマのバージョン指定は、m.n の 2 部構成です。m はメジャー バージョン番号、n はマイナー バージョン番号です。たとえば、"Version 2.5" のようになります。このバージョン番号は、Showplan XML スキーマ ドキュメントのルート要素に表示されます。例 : version="0.5"

Showplan XML スキーマの旧バージョンとの互換性

メジャー バージョン番号を増加すると、新しい XML プラン表示出力では、古いスキーマに対して検証が行われないことがあります。ただし、マイナ バージョン番号を増加しても影響はありません。たとえば、スキーマ バージョン 0.5 を使用して XML プラン表示出力を生成した場合、その出力は Showplan XML スキーマのバージョン 0.6 に対しては検証が行われます。

XML プラン表示のエンコード

SQL Server 2005 では、XML プラン表示出力は、送信する文字ごとに 2 バイトを使用する Unicode 形式でクライアントに送信されます。エンコードの規則は次のとおりです。

  • If (char >= 0x0020 && char <= 0xD7FF) or (char == 0x0009) or 
    (char == 0x000A) or (char == 0x000D) or (char >= 0xE000 && char <= 0xFFFD)
    then 文字を 2 バイトで送信します、else '?' を送信します
  • タブ文字、改行文字、およびラインフィード文字は次のようにエンコードされます。
    • \t は '&#x9;' としてエンコードされます。
    • \n は '&#xa;' としてエンコードされます。
    • \r は '&#xd;' としてエンコードされます。

XML プラン表示出力のファイルへの保存

SHOWPLAN_XML または STATISTICS XML のいずれかを指定した Transact-SQL SET ステートメントを使用してプラン表示出力を生成した後、拡張子 .sqlplan を付けたファイルに出力を保存できます。たとえば、MyXMLShowplan.sqlplan のようなファイルになります。その後、これらの .sqlplan ファイルは SQL Server Management Studio で開いて表示できます。詳細については、「実行プランを XML 形式で保存する方法」を参照してください。

参照

関連項目

グラフィカル実行プランの表示 (SQL Server Management Studio)

概念

プラン表示 SET オプションを使用した実行プランの表示 (Transact-SQL)
SQL Server Profiler のイベント クラスを使用した実行プランの表示
プラン表示のセキュリティ

その他の技術情報

sys.dm_exec_query_plan

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

変更内容 :
  • Showplan XML スキーマのインストール場所を変更しました。