プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
12c (12.2.1.2.0)
E82970-01
目次へ移動
目次

前
前へ

SQL問合せのチューニング

問合せのチューニングは、レポートのパフォーマンスの向上のために非常に重要な手順です。

実行計画、SQL監視、TKPROFのSQLトレース機能は、Oracleデータベースで実行されるアプリケーションのSQL問合せのチューニングに役立つ基本的なパフォーマンス診断ツールです。

Oracle BI Publisherでは、実行計画およびSQL監視レポートを生成し、SQLセッション・トレースを有効化するメカニズムが提供されます。この機能は、Oracle Databaseに対して実行されるSQL文にのみ適用されます。BI Serverまたはその他のいずれかのタイプのデータベースに対する論理問合せはサポートされていません。

実行計画の生成

単一問合せに対するデータ・レベル、またはレポート内のすべての問合せに対するレポート・レベルで、実行計画を生成できます。

実行計画の解釈に関する詳細は、Oracle Database SQLチューニング・ガイドを参照してください。

単一問合せの実行計画

実際に問合せを実行する前に、「SQLデータ・セット」の「編集」ダイアログから、実行計画を生成できます。これにより、計画が正確に予測されます。問合せは、null値でバインドして実行されます。

「SQL問合せの編集」ダイアログの「実行計画の生成」をクリックします。生成されたドキュメントを、NotepadまたはWordPadなどのテキスト・エディタで開きます。

レポートの実行計画

レポートの実行計画を生成するには、スケジューラを使用してレポートを実行します。

  1. 「新規」メニューから「レポート・ジョブ」を選択します。
  2. スケジュールするレポートを選択し、「診断」 タブをクリックします。

    「診断」タブにアクセスするには、BI管理者またはBIデータ・モデル開発者権限が必要です。

  3. 「SQL実行計画の有効化」および「データ・エンジン診断の有効化」を選択します。
    • SQL実行計画の有効化 — 実行計画/SQLモニター・レポート情報を含む診断ログを生成します。

    • データ・エンジン診断の有効化 — データ・プロセッサ・ログを生成します。

    • レポート・プロセッサ診断の有効化 — FO (フォーマット・オプション)およびサーバー関連ログ情報を生成します。

    • 統合ジョブ診断の有効化 — スケジューラ・ログ、データ・プロセッサ・ログ、FOおよびサーバー・ログの詳細を含むログ全体を生成します。

  4. レポートを実行します。
  5. 「ホーム」ページから、「参照/管理」の下で「レポート・ジョブ履歴」を選択します。
  6. 詳細を表示するレポートを選択します。「出力および配信」から、「診断ログ」をクリックして実行計画の出力をダウンロードします。

問合せのチューニングに関するガイドライン

一連のガイドラインに従って問合せをチューニングします。

  • 実行計画を分析し、影響が大きいSQL文を特定します。

  • 必要なフィルタ条件を追加し、不要な結合を削除します。

  • 大きな表に対するFTS (全表スキャン)を回避および削除します。小さな表に対する全表スキャンの実行は、迅速で問合せのフェッチを改善する場合もあります。小さな表では、キャッシュを使用してください。

  • SQLヒントを使用して、適切な索引を強制的に使用します。

  • 複雑なサブ問合せの使用を避け、必要に応じグローバル一時表を使用します。

  • 複数の集計でOracle SQL分析機能を使用します。

  • できるかぎり、WHERE句内で大量のサブ問合せの使用を避けます。かわりに、外部結合で問合せをリライトしてください。

  • HAVINGおよびIN / NOT INなどのWHERE句条件でグループ関数の使用を避けます。

  • 複雑な集計関数では、CASE文およびDECODE関数を使用します。

データベースのチューニングのヒント

データベースのチューニング時にベスト・プラクティスに従います。

  • データベース管理者と協力して、表の統計を収集します。

  • サーバーの速度が非常に遅い場合、ネットワーク/IO/ディスクの問題を分析し、サーバー・パラメータを最適化します。

  • いくつかのシナリオで、大量のデータのフェッチを回避できない場合、データベースでPGAヒープ・サイズ・エラーが発生する場合があります。これらの問題を解決するために、最終手段としてPGAヒープ・サイズを大きくします。次の文を使用して、ヒープ・サイズを大きくします。

    alter session set events '10261 trace name context forever, level 2097152'