プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.1.0)
E77227-02
目次へ移動
目次

前
前へ
次
次へ

Oracle Business IntelligenceでのOracle Databaseのマテリアライズド・ビューの使用

Oracle Business IntelligenceからSQLアクセス・アドバイザにメタデータをエクスポートし、Oracle Database Metadata Generatorを使用してマテリアライズド・ビューを作成する方法について説明します。

この項では、次の項目について説明します。

マテリアライズド・ビューでのSQLアクセス・アドバイザの使用について

マテリアライズド・ビューでのSQLアクセス・アドバイザによって、データ・ウェアハウスのパフォーマンスおよびデータベースの機能が向上します。

データベースに存在するデータの論理的関係に関するメタデータを、SQLアクセス・アドバイザで格納できるようにします。また、効率的なOracleマテリアライズド・ビューを使用することによって、データ・ウェアハウスの問合せのスピードが向上します。これらのマテリアライズド・ビューは、リレーショナル・データを事前集計して問合せのパフォーマンスを向上させます。メタデータがSQLアクセス・アドバイザに格納された後は、データベース管理者がデータベース・オブジェクトを最適化して、問合せのパフォーマンスを強化できます。

問合せの処理時に、Oracle Databaseは可能なかぎりマテリアライズド・ビューを格納している表に問合せをルーティングします。このマテリアライズド・ビューのテーブルは基底にある元表より小さく、データが事前集計されているため、再ルーティングされた問合せを高速で実行できます。

Oracle Database Metadata Generatorは、メタデータ・ブリッジとして機能します。Oracle Business Intelligence固有のメタデータがPL/SQLコマンドが組み込まれたSQLファイルに変換され、SQLアクセス・アドバイザでディメンションが生成されます。メタデータがSQLファイル変換された後は、SQL*Plusなどのツールを使用して変換後のメタデータをSQLアクセス・アドバイザにインポートしてメタデータ・カタログ表に格納します。メタデータのインポート後は、マテリアライズド・ビューを作成し、このビューを 着信するアプリケーション問合せの最適化に使用します。

Oracle Databaseへのメタデータのデプロイ

メタデータをOracle Databaseにデプロイするには、あらかじめOracle Databaseとそのツールを十分に理解しておく必要があります。

詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

メタデータのデプロイ前にジェネレータの実行に記載された手順を完了します。キューブ・メタデータをデプロイするには、次の各項で説明されているタスクを実行します。

Oracle Databaseに対するSQLファイルの実行

SQLアクセス・アドバイザへのSQLファイルのインポートを実行する前に、Oracle Databaseのインポート・ツールを十分に理解しておく必要があります。詳細は、Oracle Databaseのドキュメント・セットを参照してください。

SQL*Plusなどのツールを使用してOracle Database Metadata Generatorが生成したSQLファイルを実行します。ディメンションが既存の場合、またはデータベース・スキーマがRPDファイルのものと異なる場合は、エラー・メッセージが表示される場合があります。スクリプトの実行が正常に完了すると、データベースWebコンソール、またはOracle Enterprise Manager Database Controlを使用して作成されたディメンションが表示されます。Oracle Enterprise Manager Database Controlでは、「ネットワーク」、「データベース」、データベース名、「ウェアハウス」、「サマリー管理」、「ディメンション」、「システム」の各ノードを展開します。

SQLファイルの実行後は、次の事項に注意します。

  • 増分メタデータ変更は許可されません。スキーマの変更では、Oracle Databaseのキューブ・モデル・メタデータを手動で削除し、Oracle Business Intelligenceのメタデータを変換しなおす必要があります。たとえば、Oracle BIリポジトリ内のキューブのディメンションを変更する必要がある場合は、Oracle Databaseのキューブ・モデルを削除し、Oracle BIリポジトリからSQLファイルを再生成してSQLアクセス・アドバイザにインポートする必要があります。

  • Oracle Database Metadata Generatorではメタデータの削除は実行できません。Oracle Enterprise Manager Database Controlを使用してキューブ・モデルを手動で削除する必要があります。

結合の存在に関する制約の定義

Oracle Databaseでディメンション表とファクト表間の結合が確実に認識できるようにする必要があります。

この詳細は、Oracle Databaseのドキュメント・セットを参照してください。

これには、SQL*PlusまたはOracle Enterprise Manager Database Controlで制約を作成します。Oracle Enterprise Manager Database Controlで、制約を作成する表を選択して「制約」タブを選択します。

次のように、表の種類によって、タイプの異なる制約を作成します。

  • ディメンション表には、UNIQUEキー制約を作成します。

  • ファクト表には、FOREIGNキー制約を作成し、参照先スキーマと参照先表を指定します。「制約の定義」領域に、ファクト表の外部キー列とディメンション表の対応する一意キーを組み込みます。外部キー列データがディメンション表の一意キー列データと一致しないかぎり、ファクト表での外部キーの作成が失敗します。

問合せワークロードの作成

問合せワークロードは、最適化に使用される物理問合せのサンプル・セットです。

問合せワークロード作成の詳細は、Oracle Databaseのドキュメント・セットを参照してください。

ワークロードの作成前に実行速度が最低速の問合せに関する情報を使用してトレース・ファイルを生成します。

トレース・ファイルを生成するには:

実行速度が最低速の問合せのトレース・ファイルは、次のように使用するデータベースのバージョンに応じたツールを使用して生成できます。

  • 使用状況トラッキング: Oracle Business Intelligenceにある機能で、この機能を使用して問合せとその実行所要時間をログに記録します。実行時間が長いOracle Business Intelligenceの問合せはスクリプトとして実行でき、また、Oracle Databaseのトレース機能とともに使用するとこれらの問合せのOracle Database SQLコードを取得できます。

  • Oracle Databaseトレース: このツールは、最低速の物理問合せの特定に使用します。トレース機能は、Oracle Enterprise Manager Database Control内から、またはDBMS_MONITORパッケージとともにSQLコマンドを入力することによって有効化できます。トレース機能を有効化したら、スクリプトを使用してトレース・ファイルを作成し、問合せワークロード表で問合せに使用されるSQLコードを取得します。

  • Oracle Enterprise Manager: このツールは実行速度が遅い問合せの追跡に使用されます。

    注意:

    次に説明する機能は、Oracle Business Intelligenceではなく、Oracle Databaseで使用できます。

トレース・ファイルの情報を分析するには:

  1. トレース・ファイルの確認時は、次のガイドラインを使用します。
    • バッチ・プロセスのように1度に多数の文をトレースした場合は、問合せ実行時間が許容できる文をただちに廃棄します。実行時間が最長の文に集中します。

    • Query列で、すべての問合せおよび副問合せの処理も含めてブロック・アクセスの読取りの整合性をチェックします。多くの場合、非効率的な文ではブロック・アクセス数の大量化が発生します。Current列には、セグメントのヘッダーおよび更新されるブロックなど、読取りの整合性と関連しないアクセス数が示されます。

    • Disk列で、ディスクから読み取られたブロックの数をチェックします。ディスクの読取りはメモリーの読取りより低速であるため、この値はQuery列およびCurrent列の合計を大きく下回る可能性があります。このようになっていない場合は、バッファ・キャッシュの問題を確認してください。

    • ロックの問題および非効率的なPL/SQLループによって、ブロック・アクセス数が少くてもCPU時間値が高い状況が発生することがあります。

    • 単一文に対する複数の解析文のコールがないかを調べます。これは、ライブラリ・キャッシュの問題を示すものです。

  2. ファイル内で問題の文を特定したら、実行計画をチェックして、問題の文のそれぞれが発生した原因を調べます。

問合せをワークロードにロードするには:

  • トレース・ユーティリティを使用して最低速の物理問合せの名前を特定したら、USER_WORKLOAD表に挿入します。

    次の表は、USER_WORKLOAD表の列を示しています。

  • INSERT文を使用して、QUERY列に最低速物理問合せのSQL文を、OWNER列に該当する所有者名を移入します。

データ型 必須 説明

QUERY

すべてのLONGまたはVARCHAR型(すべての文字型)

はい

問合せのSQL文。

OWNER

VARCHAR2 (30)

はい

問合せの最終実行ユーザー。

APPLICATION

VARCHAR2 (30)

いいえ

問合せのアプリケーション名。

FREQUENCY

NUMBER

いいえ

この問合せが実行された回数。

LASTUSE

DATE

いいえ

この問合せの最終実行日付。

PRIORITY

NUMBER

いいえ

ユーザーが指定する問合せのランキング。

RESPONSETIME

NUMBER

いいえ

問合せの実行時間(秒)。

RESULTSIZE

NUMBER

いいえ

問合せが選択した合計バイト数。

SQL_ADDR

NUMBER

いいえ

問合せのキャッシュ・アドレス

SQL_HASH

NUMBER

いいえ

問合せのキャッシュ・ハッシュ値。

マテリアライズド・ビューの作成

問合せワークロード表への移入後は、Oracle Databaseのバージョンに応じたツールを使用してマテリアライズド・ビューを作成します。

Oracle Database 10gでは、Oracle Enterprise Manager Database ControlのSQLアクセス・アドバイザを使用して、作成した問合せワークロード表を指定します。

SQLアクセス・アドバイザは、指定したファクト表のパフォーマンス向上に関する推奨事項を生成します。SQLアクセス・アドバイザに適切なマテリアライズド・ビューを作成するSQLコードが表示されます。SQLアクセス・アドバイザでマテリアライズド・ビューの作成を実行する前に、次のヒントを確認してください。

  • SQLコードにCAST文が含まれていると、マテリアライズド・ビューの作成が失敗する場合があります。

  • CREATE MATERIALIZED VIEW文でワークロード表として指定した問合せと同じものを指定していないことを確認してください。この文で同じ問合せを指定すると、マテリアライズド・ビューに実際のパフォーマンス向上が反映されないことになります。ただし問合せの実行頻度が高い場合はマテリアライズド・ビューの作成が無駄にならない場合もあります。

  • SQL文の後のCREATE MATERIALIZED VIEW文の最後にスラッシュを追加します。追加されていない場合は、SQL*Plusワークシートで有効な文であると認識されません。

    注意:

    また、SQLアクセス・アドバイザは適切な索引付けスキームの決定にも役立ちます。