Visual Explain を使ったアクセス・プランのダイアグラミング

データ・サーバーがステートメントを処理する方法を見つけるために、SQL または XPATH ステートメントの現行アクセス・プランのダイアグラムを生成することができます。 グラフから使用可能な情報を使用して、SQL ステートメントを調整し、パフォーマンスを改善できます。

始める前に

DB2® for z/OS® 用のアクセス・プラン図を作成する場合には、使用している DB2 サブシステムを構成する必要があります。手順は、IBM Data Studio の無料チューニング・フィーチャーと一緒に使用するためのサブシステムの構成の手順と同じです。

制約事項: IBM® Informix® Dynamic Server では、Visual Explain は、パラメーター・マーカーやホスト変数を含む SELECT ステートメントの Explain は実行できません。

このタスクについて

Visual Explain を使用して、以下を行うことができます。
  • 最適化を行うときに使用された統計を表示します。 これらの統計を現行のカタログ統計と比較して、パッケージの再バインドによってパフォーマンスが向上する可能性があるかどうかを判別するときの参考にすることができます。
  • 表へのアクセスに索引が使用されたかどうかを判別します。 索引が使用されなかった場合、Visual Explain は索引付けのメリットがある列を判別する上で役に立ちます。
  • アクセス・プランの各操作に関する情報を入手します。これには、合計見積もりコストや取得される行の数 (カーディナリティー) が含まれます。

手順

照会の現行アクセス・プランのダイアグラムを生成するには、以下のようにします。

  1. オプション: Visual Explain の動作方法やダイアグラムの表示方法に関する設定を行います。
  2. 以下のいずれかのステップに従います。
    • データ・プロジェクト・エクスプローラーで、SQL ステートメント、SQL ストアード・プロシージャー、または SQL ユーザー定義関数を右クリックし、「Visual Explain を開く」を選択します。
    • データ・ソース・エクスプローラーで、ビューを右クリックするか、INSERT、UPDATE、DELETE、または SELECT ステートメントを含む SQL ストアード・プロシージャーまたは SQL ユーザー定義関数を右クリックします。 「Visual Explain を開く」を選択します。 ワークベンチは、複数の SQL ステートメントまたは XQUERY ステートメントを検出した場合、最初のステートメントを使用します。
    • SQL、Routine、または Java エディターで、INSERT、UPDATE、DELETE、または SELECT ステートメント、XPATH、または XQUERY ステートメントを強調表示して右クリックし、「Visual Explain を開く」を選択します。
      Java エディター内の SQL ステートメントから Visual Explain を開こうとした場合、アプリケーションで宣言された変数がその SQL ステートメントに含まれていると失敗します。 たとえば、次の SQL ステートメントは、述部にある 2 つの変数が原因となって、Visual Explain では分析できません。
      select count(*), sum(order.price)
      from order
      where order.date > var_date_1
      and order.date < var_date_2 
      ただし、アプリケーションをバインドまたはデプロイした後で、InfoSphere® Optim™ Query Tuner、または Data Studio の単一照会チューニング機能を使用して、DB2 パッケージまたは動的ステートメント・キャッシュから SQL ステートメントを取り込み、それをチューニングすることができます。
    注: 選択された SQL ステートメントまたはオブジェクトが EXPLAIN 不能な場合、Visual Explain は使用不可になるか、または例外をスローします。 Visual Explain で EXPLAIN 可能な SQL ステートメントは、以下にリストするもののみです。
    • DB2 for Linux, UNIX, and Windows の場合: CALL、複合 SQL (動的)、DELETE、INSERT、MERGE、REFRESH、SELECT、SELECT INTO、SET INTEGRITY、UPDATE、VALUES、または VALUES INTO。
    • DB2 for z/OS の場合: SELECT、INSERT、あるいは UPDATE または DELETE ステートメントの検索フォーム。
  3. ウィザードの先頭ページで、アクセス・プランをダイアグラミングする SQL、XPATH、または XQUERY ステートメントの終止符を指定します。
  4. オプション: ウィザードの先頭ページで、さまざまなオプションの設定も指定できます。
    1. 収集した Explain データを Explain 表に保管するかどうかを指定します。 このオプションを選択する場合、同じステートメントで次回アクセス・プランをダイアグラミングするときに、Visual Explain で Explain データを収集する必要がなくなります。
      制約事項: このオプションは Oracle データ・サーバーでは 選択できません。
    2. Visual Explain の作業ディレクトリーとして使用するディレクトリーを指定します。
    3. IBM サポートでトレースが必要な場合、アクセス・プランのダイアグラムの作成および Explain データの収集をトレースするかどうかを指定します。
    4. Visual Explain を使用して作成するすべてのダイアグラムのデフォルトとして、設定を保存するかどうかを指定します。 これらのデフォルトは、「設定」ウィンドウで変更できます。
  5. ウィザードの 2 番目のページで特殊レジスターの値を設定し、Explain データの収集に影響を与えるようにランタイム環境をカスタマイズします。

    ステートメントを実行して Explain データを収集するときに、Visual Explain は指定された値を使用します。

    重要: DB2 データ・サーバーに関する次の情報にご留意ください。
    • DB2 for z/OS の場合: CURRENT SCHEMA と CURRENT SQLID に異なる値を指定する場合、Visual Explain は CURRENT SQLID の値によって修飾されている Explain 表を検索します。 Visual Explain が CURRENT SQLID の値によって修飾されている Explain 表を検出できなかった場合、Visual Explain はその値で Explain 表の作成を試みます。
    • DB2 for Linux, UNIX, and Windows の場合: CURRENT SCHEMA の値を特殊文字を含む値に変更する場合、値を単一引用符で区切る必要があります。
    • DB2 for Linux, UNIX, and Windows の場合: クラスター化された列および GROUP BY 節に参加している列に関する詳しい統計を Visual Explain で収集する場合は、「列および列グループの統計の収集」チェック・ボックスを選択します。
  6. オプション: ウィザードの 2 番目のページで、Visual Explain を使用して作成するすべてのダイアグラムのデフォルトとして設定を保存するかどうかを指定します。 これらのデフォルトは、「設定」ウィンドウで変更できます。
  7. 「完了」をクリックしてウィザードを閉じ、ダイアグラムを生成します。

タスクの結果

ワークベンチの「アクセス・プラン図」ビューにダイアグラムが表示されます。 このビューで、ダイアグラムのナビゲート、ダイアグラムのノードの説明の表示、およびノードの検索を行うことができます。

フィードバック