Oracle Analytics ServerでのOracle Databaseのマテリアライズド・ビューの使用
Oracle Analytics ServerからSQLアクセス・アドバイザにメタデータをエクスポートし、Oracle Database Metadata Generatorを使用してマテリアライズド・ビューを作成する方法について説明します。
このセクションには次のトピックが含まれます:
マテリアライズド・ビューでのSQLアクセス・アドバイザの使用について
マテリアライズド・ビューでのSQLアクセス・アドバイザを使用して、データ・ウェアハウスのパフォーマンスおよびデータベースの機能を向上できます。
Oracle Database Metadata Generatorを使用すると、データベースに存在するデータの論理的関係に関するメタデータを、SQLアクセス・アドバイザで格納できます。また、効率的なOracleマテリアライズド・ビューを使用することによって、データ・ウェアハウスの問合せのスピードが向上します。これらのマテリアライズド・ビューは、リレーショナル・データを事前集計して問合せのパフォーマンスを向上させます。メタデータがSQLアクセス・アドバイザに格納された後は、データベース管理者がデータベース・オブジェクトを最適化して、問合せのパフォーマンスを強化できます。
問合せの処理時に、Oracle Databaseは可能なかぎりマテリアライズド・ビューを格納している表に問合せをルーティングします。このマテリアライズド・ビューのテーブルは基底にある元表より小さく、データが事前集計されているため、再ルーティングされた問合せを高速で実行できます。
Oracle Database Metadata Generatorはメタデータ・ブリッジとして機能し、固有のメタデータがPL/SQLコマンドが組み込まれたSQLファイルに変換され、SQLアクセス・アドバイザでディメンションが生成されます。メタデータがSQLファイル変換された後は、SQL*Plusなどのツールを使用して変換後のメタデータをSQLアクセス・アドバイザにインポートしてメタデータ・カタログ表に格納します。メタデータのインポート後は、マテリアライズド・ビューを作成し、このビューを着信するアプリケーション問合せの最適化に使用します。
Oracle Database用のメタデータのデプロイ
メタデータをOracle Databaseにデプロイするには、あらかじめOracle Databaseとそのツールを十分に理解しておく必要があります。
Oracle Databaseパフォーマンス・チューニング・ガイドの「SQLアクセス・アドバイザ」を参照してください。
メタデータのデプロイ前にジェネレータの実行に記載されたステップを完了します。キューブ・メタデータをデプロイするには、次の各項で説明されているタスクを実行します。
Oracle Databaseに対するSQLファイルの実行
SQLアクセス・アドバイザへのSQLファイルのインポートを実行する前に、Oracle Databaseのインポート・ツールを十分に理解しておく必要があります。詳細は、Oracle Databaseのドキュメント・セットを参照してください。
SQL*Plusなどのツールを使用してOracle Database Metadata Generatorが生成したSQLファイルを実行します。ディメンションが既存の場合、またはデータベース・スキーマがOracle BIリポジトリ・ファイルのものと異なる場合は、エラー・メッセージが表示される場合があります。スクリプトの実行が正常に完了すると、データベースWebコンソール、またはOracle Enterprise Manager Database Controlを使用して作成されたディメンションが表示されます。Oracle Enterprise Manager Database Controlでは、「ネットワーク」、「データベース」、データベース名、「ウェアハウス」、「サマリー管理」、「ディメンション」、「システム」の各ノードを展開します。
SQLファイルの実行後は、次の事項に注意します。
-
増分メタデータ変更は許可されません。スキーマの変更では、Oracle Databaseのキューブ・モデル・メタデータを手動で削除し、メタデータを再度変換する必要があります。たとえば、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 Analytics Serverにあるこの機能を使用して、問合せとその実行所要時間をログに記録します。実行時間が長い問合せはスクリプトとして実行でき、また、Oracle Databaseのトレース機能とともに使用するとこれらの問合せのOracle Database SQLコードを取得できます。
-
Oracle Databaseトレース: このツールは、最低速の物理問合せの特定に使用します。トレース機能は、Oracle Enterprise Manager Database Control内から、または
DBMS_MONITOR
パッケージとともにSQLコマンドを入力することによって有効化できます。トレース機能を有効化したら、スクリプトを使用してトレース・ファイルを作成し、問合せワークロード表で問合せに使用されるSQLコードを取得します。 -
Oracle Enterprise Manager: このツールは実行速度が遅い問合せの追跡に使用されます。
次の各項で説明する機能は、Oracle Analytics Serverの一部ではなく、Oracle Databaseで使用できます。
問合せをワークロードにロードするには:
-
トレース・ユーティリティを使用して最低速の物理問合せの名前を特定したら、
USER_WORKLOAD
表に挿入します。次の表は、
USER_WORKLOAD
表の列を示しています。 -
INSERT
文を使用して、QUERY
列に最低速物理問合せのSQL文を、OWNER
列に該当する所有者名を移入します。
列 | データ型 | 必須 | 説明 |
---|---|---|---|
QUERY |
すべてのLONGまたはVARCHAR型(すべての文字型) |
YES |
問合せのSQL文。 |
OWNER |
VARCHAR2 (30) |
YES |
問合せを最後に実行したユーザー。 |
APPLICATION |
VARCHAR2 (30) |
NO |
問合せのアプリケーション名。 |
FREQUENCY |
NUMBER |
NO |
問合せが実行された回数。 |
LASTUSE |
DATE |
NO |
問合せが最後に実行された日付。 |
PRIORITY |
NUMBER |
NO |
ユーザーが指定する問合せのランキング。 |
RESPONSETIME |
NUMBER |
NO |
問合せの処理時間(秒単位)。 |
RESULTSIZE |
NUMBER |
NO |
問合せが選択した合計バイト数。 |
SQL_ADDR |
NUMBER |
NO |
問合せのキャッシュ・アドレス |
SQL_HASH |
NUMBER |
NO |
問合せのキャッシュ・ハッシュ値。 |
マテリアライズド・ビューの作成
問合せワークロード表への移入後は、Oracle Databaseのバージョンに応じたツールを使用してマテリアライズド・ビューを作成します。
SQLアクセス・アドバイザは、指定したファクト表のパフォーマンス向上に関する推奨事項を生成します。また、SQLアクセス・アドバイザは適切な索引付けスキームの決定にも役立ちます。SQLアクセス・アドバイザに適切なマテリアライズド・ビューを作成するSQLコードが表示されます。SQLアクセス・アドバイザでマテリアライズド・ビューを作成する前に、次を確認してください。
-
SQLコードに
CAST
文が含まれていると、マテリアライズド・ビューの作成が失敗する場合があります。 -
CREATE MATERIALIZED VIEW
文でワークロード表として指定した問合せと同じものを指定しないでください。この文で同じ問合せを指定すると、マテリアライズド・ビューに実際のパフォーマンス向上が反映されない可能性があります。ただし、問合せの実行頻度が高い場合はマテリアライズド・ビューの作成が無駄にならない場合もあります。 -
SQL文の後の
CREATE MATERIALIZED VIEW
文の最後にスラッシュを追加します。フォワード・スラッシュが含まれていない場合は、SQL*Plusワークシートで有効な文であると認識されません。