ロギング対象のSQL DMLリクエストの最適化ルーチン クエリー計画を、DBQLテーブルDBC.DBQLXMLTblにキャプチャすることができます。これを実行するには、XMLPLANをlogging_optionに指定して、実行中のDMLクエリーのクエリー計画をXMLテキストとしてキャプチャできるようにします。
XML形式のクエリー計画情報は、パフォーマンスおよびクエリー計画の問題を診断するのに特に役立ちます。
- DUMP EXPLAIN
- INSERT EXPLAIN
- EXPLAIN
また、データベースは、SQLリクエストで参照されるオブジェクトのテキスト定義は記録しません。代わりにシステムは、必要な場合に、データ ディクショナリからテキスト定義をフェッチするためのキーとして使用できる、短い識別子を記録します。
- 生成される各文書の内容以外にも、XMLPLANロギングとINSERT EXPLAINリクエストの間には、次の表に示す別の重要な違いがあります。
BEGIN QUERY LOGGING … XMLPLAN INSERT EXPLAIN 実行済みクエリーのクエリー計画をXML形式で記録します。 クエリーを実行しないでクエリー計画をキャプチャします。 実行中のワークロードに対するクエリー計画を記録する場合、INSERT EXPLAINリクエストを使用して、それらのワークロード内のリクエストに対するクエリー計画をキャプチャする方法は遅すぎてニーズに合わないとわかったなら、XMLPLANのロギングが適しています。
一方、クエリーのチューニングをするだけであって実行はしない場合、INSERT EXPLAINリクエストを使用してリクエストのクエリー計画をキャプチャする場合と比べて、XMLPLANロギングはそれほど有用ではありません。
この場合には、INSERT EXPLAIN INTO QCD_nameIN XMLリクエスト、またはEXPLAIN IN XML SQL_requestを実行する方法が、類似した代替手段となります。DUMP EXPLAINリクエストを使用して、XML形式でクエリー計画をキャプチャすることはできません。
- 従来のDBQLテーブルの実行時の情報も、ログ対象の計画についてキャプチャされます。
- XMLPLANロギングは、Query Capture Facilityの拡張機能というだけでなく、クエリー ロギングの拡張機能です。
EXPLAINオプションは、キャッシュされたリクエストについて行を記録しません。