Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド 12c (12.2.1.2.0) E82970-01 |
|
![]() 前へ |
問合せのチューニングは、レポートのパフォーマンスの向上のために非常に重要な手順です。
実行計画、SQL監視、TKPROFのSQLトレース機能は、Oracleデータベースで実行されるアプリケーションのSQL問合せのチューニングに役立つ基本的なパフォーマンス診断ツールです。
Oracle BI Publisherでは、実行計画およびSQL監視レポートを生成し、SQLセッション・トレースを有効化するメカニズムが提供されます。この機能は、Oracle Databaseに対して実行されるSQL文にのみ適用されます。BI Serverまたはその他のいずれかのタイプのデータベースに対する論理問合せはサポートされていません。
単一問合せに対するデータ・レベル、またはレポート内のすべての問合せに対するレポート・レベルで、実行計画を生成できます。
実行計画の解釈に関する詳細は、Oracle Database SQLチューニング・ガイドを参照してください。
実際に問合せを実行する前に、「SQLデータ・セット」の「編集」ダイアログから、実行計画を生成できます。これにより、計画が正確に予測されます。問合せは、null値でバインドして実行されます。
「SQL問合せの編集」ダイアログの「実行計画の生成」をクリックします。生成されたドキュメントを、NotepadまたはWordPadなどのテキスト・エディタで開きます。
一連のガイドラインに従って問合せをチューニングします。
実行計画を分析し、影響が大きい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'