機械翻訳について

SQL問合せのチューニング

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

データ・セットの実行計画、データ・モデルのSQLモニタリング・レポートを生成し、SQLセッション・トレースを有効にできます。 この機能は、Oracle Databaseに対して実行されるSQL文に適用されます。 他のタイプのデータベースに対する論理問合せはサポートされていません。 管理者は、データ・モデル・ランタイム・プロパティを使用してSQLセッション・トレースを有効にできます。 BI管理者またはBIデータ・モデル開発者権限を持つユーザーは、スケジュール済ジョブの診断を有効にしてダウンロードできます。

「データ・モデルのテストおよびサンプル・データの生成」を参照してください。

実行計画の生成

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

実行計画の解釈に関する詳細は、『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関数を使用します。