ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド
11gリリース1 (11.1.1)
E51906-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

16 サマリー・フォルダに関する追加情報

この章では、Discovererのサマリー・フォルダに関する追加情報について説明します。項目は次のとおりです。

16.1 Discovererでのサマリー・テーブルおよびマテリアライズド・ビューの使用の現状と将来

Discovererでは、クエリー・リライトし、サマリー・テーブルを使用する概念が考案されました。オラクル社は、サマリー・テーブルを作成し、SQLに自動的にリライトさせるアイデアの特許を獲得しました。

この機能がすべてのデータベース・ユーザーに便利であることが明確になったため、Oracleではこの機能をデータベースに取り入れました。Discovererでは、可能な場合は必ずマテリアライズド・ビューとクエリー・リライトを使用します。そうでない場合でも、Discovererのサマリー・テーブルに対する従来のクエリー・リライトもサポートしています。

長期的な方向としては、サーバーのクエリー・リライト機能を使用して作業し、徐々にDiscoverer固有の機能をなくしていきます。

16.2 クエリー・リライト

Discovererは次のデータベース条件下でクエリー・リライトを使用します。

クエリー・リライトは、Discovererエンド・ユーザーにとって透過的であり、ディテール・テーブルに対して実行するクエリーと同じ結果を提供しますが、それよりも大幅に短い時間で結果を返します。

注意: クエリー・リライトを使用する前に、Discoverer Plusでサマリー・フォルダを使用するオプションを設定する必要があります(詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照)。

Oracle Enterprise Editionデータベースのリライト・シナリオに関するルールの詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。

16.3 Discovererによるクエリー・リライトの条件

Discovererは、次のすべての条件を満たす場合、クエリー・リライトして、ディテール・データではなくサマリー・テーブルを使用します。

複合フォルダの詳細は、「複合フォルダ」を参照してください。

16.4 DiscovererでのSQLとクエリー・リライトの実行計画の表示

Discoverer Plusで「SQLインスペクタ」ダイアログを使用して、データベース・サーバーに送信されるSQLと、データベース・サーバーがクエリーから結果データを返すための実行計画を表示します。「SQLインスペクタ」ダイアログにはSQLが表示されます。マテリアライズド・ビューの名前または使用されたサマリー・テーブルが含まれています。「SQLインスペクタ」ダイアログの詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。

16.5 Discovererで「SQLインスペクタ」ダイアログにSQLを表示する方法の構成

Oracle Business Intelligence Discoverer PlusおよびOracle Business Intelligence Discoverer Desktopでは、Discovererによって生成されたSQLをエンド・ユーザーが確認してワークシートを作成できます。「SQLインスペクタ」に表示されるSQLは、RDBMSに送信されるものと同一とはかぎりません。

Discovererは、常にインライン・ビューを含むSQLをRDBMSに送信します。エンド・ユーザーがインライン・ビューを読むのは困難なため、SQLを容易に読めるように再フォーマット(フラット化)するよう、Discovererを構成できます。

DiscovererでSQLを表示する方法を構成するには、SQLTypeレジストリ設定を編集します(詳細は、第21章「Discovererのレジストリ設定」および「Discoverer AdministratorおよびDiscoverer Desktopのレジストリ設定の編集方法」を参照)。

インライン・ビューを含むSQLがRDBMSに渡されても、データベース内ですべて実行されるわけではありません。RDBMSオプティマイザは、インライン・ビューのすべての列からSQLを分離します。データベースから返される列は、外部のSELECT文にある列のみです。たとえば、次のSQL文を考えてみます。

select dname from

(select dname, deptno, manager_id, manager_name, location, address, phone, zip from departments)

RDBMSオプティマイザは、このSQL文を次のように変換します。

select dname from departments

このSQL文では、Discovererに返される列はdname列のみです。

データベースで実行されるSQLを確認するには、Discoverer PlusまたはDiscoverer Desktopの「SQLインスペクタ」ダイアログでフラット化されたSQLを参照します。

16.6 (Discovererで)マテリアライズド・ビューを使用/使用しない実行計画の例

Discoverer Plusで「SQLインスペクタ」ダイアログを呼び出して、クエリーがクエリー・リライトの対象かどうかを指定できます。次の表は、適切なマテリアライズド・ビューが存在しないクエリーで使用されるときに、サーバーの実行計画がどのように表示されるかを示しています。この例で、サーバーは3つのVIDEO5データ・テーブルの全テーブル検索を完了して、結果セットを返しています。

Discovererの「SQLインスペクタ」ダイアログの「プラン」タブに表示されるSQL文
SELECT STATEMENT  
SORT GROUP BY 
TABLE ACCESS FULL VIDEO5.Sales
TABLE ACCESS FULL VIDEO5.Product
TABLE ACCESS FULL VIDEO5.Time

次の表は、適切なマテリアライズド・ビューが存在するクエリーで使用されるときに、サーバーの実行計画がどのように表示されるかを示しています。この例で、サーバーはマテリアライズド・ビューを使用して結果セットを返しています。

Discovererの「SQLインスペクタ」ダイアログの「プラン」タブに表示される実行計画
SELECT STATEMENT  
SORT GROUP BY 
TABLE ACCESS FULL NICK.EUL5_MV101510

前述のテーブルのSQL文は、サーバーがどのようにクエリー・リライトし、適切なマテリアライズド・ビューを使用するかを示しています。

マテリアライズド・ビューは、テーブル名EUL5_MV{識別子}により実行計画の中で識別されます。

16.7 Discovererがクエリー・リライトする場合のSQLの例

Oracle Standard Editionデータベースに対してDiscovererを実行する場合、Discovererはクエリー・リライトを制御して適切なサマリー・テーブルを使用します。Discovererは、データベース・サーバーに送信されたSQL文を「SQLインスペクタ」ダイアログの「SQL」タブに表示します。

次の表に、Video Analysisフォルダからのアイテムを使用しているDiscovererワークシートに使用されたSQL文を示します(詳細は、第27章「Discovererのサンプル・データEUL、データおよびワークブックのインストール」を参照)。SQL文は、サマリー・テーブル「EUL5_SUM100750」が参照されていることを示しています。

Discoverer Plusの「SQLインスペクタ」ダイアログの「SQL」タブに表示されるSQL文
SELECT EUL5_SUM100750,"Department", EUL5_SUM100750, "Region", EUL5
_SUM100750,"Calendar Date Year", SUM(EUL5_SUM100750,"Profit SUM")
FROM ADMINTUTORNF806.EUL5_SUM100750 EUL5_SUM100750
GROUP BY EUL5_SUM10075."Department", EUL5_SUM10075."REgion", EUL5
_SUM10075."Calendar Date Year";

Discovererは、最も適切なサマリー・テーブルを自動選択してクエリーを効率的に処理します。このアクションは、Discovererエンド・ユーザーにとって完全に透過的です。

次の表は、エンド・ユーザーが年から月までをドリルダウンしたことを除き、前述と同じDiscovererワークシートのSQL文を示しています。

SQL文は、Discovererがサマリー・テーブルEUL5_SUM100750(前述と同じ)に対するクエリーの最初の部分をリライトしたことを示しています。ただし、サマリー・テーブルEUL5_SUM100774に対するクエリーの2番目の部分(ドリルダウン)をリライトしました。

Discoverer Plusの「SQLインスペクタ」ダイアログの「SQL」タブにドリルダウンに続いて表示されるSQL文
SELECT EUL5_SUM100750,"Department", EUL5_SUM100750, "Region", EUL5
_SUM100750,"Calendar Date Year", SUM(EUL5_SUM100750,"Profit SUM")
FROM ADMINTUTORNF806.EUL5_SUM100750 EUL5_SUM100750
GROUP BY EUL5_SUM100750."Department", EUL5_SUM100750."Region", EUL5
_SUM100750."Calendar Date Year";
SELECT EUL5_SUM100774,"Department", EUL5_SUM100774, "Region", EUL5
_SUM100774,"Calendar Date Month", EUL5_SUM100774,"Calendar Date Year", SUM(EUL5
_SUM100774,"Profit SUM")
FROM ADMINTUTORNF806.EUL5_SUM100774 EUL5_SUM100774
WHERE (EUL5_SUM100774."Calendar Date Year" = TO
_DATE('200001011000000','YYYYMMDDHH24MISS')
GROUP BY EUL5_SUM100774."Department", EUL5_SUM100774."Region", EUL5
_SUM100774,"Calendar Date Month", EUL5_SUM100774."Calendar Date Year";

16.8 クエリー・リライトしてサマリー・テーブルを使用する場合の利点を示す例

この例は5つのテーブルから成り立っていて、その1つには約70,000のレコードがあります(詳細は次の図を参照)。スキーマとデータはチュートリアル・データから取得されます。

図16-1 スキーマとデータの例

図16-1の説明は前後にあります。

次のアイテムを必要とするクエリーを考えてみます。

これには、4つのテーブルの結合と、「SALES_FACT」(約70,000の行を持つテーブル)にある一致するすべての行の集計が必要です。サーバーの能力に応じて、クエリーの結果の生成に数分かかることもあります。

一方、クエリーが、地域、部門、年度、合計値(利益)のデータをすでに含んでいる1つのテーブルを使用するようにリライトされると(サンプル・サマリー・テーブルの図を参照)、クエリーは瞬時にレスポンスを生成します。

図16-2 サンプル・サマリー・テーブル

図16-2の説明は前後にあります。

前述のサンプル・サマリー・テーブルには、月レベルのクエリーで必要とされる情報が格納され、年レベルに集合化する必要があります。したがって、Discovererは4つのテーブルの結合から集合化するのではなく、また全テーブル検索を実行することなく、1つのテーブルを使用します。

16.9 Oracle Standard EditionデータベースとOracle Enterprise Editionデータベースのサマリー・フォルダの特性の相違点

次の表に、異なるリリースのデータベースを使用している場合のサマリー・フォルダの特長の違いと比較を示します。

サマリー・フォルダの詳細は、「Discovererのフォルダとサマリー・フォルダ」および第15章「手動によるサマリー・フォルダの作成」を参照してください。次の表に、Oracle Standard EditionデータベースとOracle Enterprise Editionデータベースのサマリー・フォルダの比較を示します。

質問 Oracle Standard Editionデータベース Oracle Enterprise Editionデータベース
サマリー・フォルダはどのようにデータベースに格納されますか。 サマリー・テーブルとして格納します マテリアライズド・ビューまたはサマリー・テーブルとして格納します
サマリー・フォルダはどのようにリフレッシュされますか。 完全リフレッシュのみ 完全リフレッシュまたは増分リフレッシュ
どのような種類のリフレッシュが利用できますか。 リフレッシュはオンデマンドのみです リフレッシュはオンデマンドまたはコミット時に可能です
リフレッシュはどのように実行されますか。 Discovererがリフレッシュを実行します サーバーがリフレッシュを実行します
サマリーのリライトを実行するのは何ですか。 Discovererがサマリーのリライトを実行します サーバーがクエリー・リライトを実行します
サマリー・フォルダを定義する用語は何ですか。 サマリー・フォルダはアイテムとフォルダで定義されます サマリー・フォルダはテーブルと列で定義されます
他のアプリケーションはこれらを利用できますか。 いいえ、Discovererのみです はい、他のアプリケーションもマテリアライズド・ビューを利用できます

注意

16.10 外部サマリー・テーブルに基づくサマリー・フォルダの相違点

Discovererは、次に基づいてサマリー・フォルダを作成します。

Discovererのサマリー・テーブルまたはマテリアライズド・ビューに基づくサマリー・フォルダと外部サマリー・テーブルに基づくサマリー・フォルダとの主な相違点を次に示します。

質問 Discovererのサマリー・テーブルまたはマテリアライズド・ビューに基づくサマリー・フォルダ 外部サマリー・テーブルに基づくサマリー・フォルダ
どのように移入され、メンテナンスされますか。 Discoverer AdministratorまたはOracle Enterprise Editionデータベースにより自動的に移入およびメンテナンスされます。 別のアプリケーション(SQL*Plusなど)を使用します。
どのように作成されますか。 Discoverer Administratorを使用します。 別のアプリケーションを使用します。
どのようにリフレッシュされますか。 自動的に一定間隔でリフレッシュ(Discoverer AdministratorのDiscovererマネージャで定義)されます。 別のアプリケーションを使用します。

次の図は、Discovererがマテリアライズド・ビューに基づいたサマリー・フォルダをどのように作成するかを示しています。マテリアライズド・ビューは外部サマリーからのデータを使用して提供されます。外部サマリーは外部アプリケーションによって作成されます。

図16-3 外部サマリーを使用するDiscoverer

図16-3の説明は前後にあります。

Discoverer Administratorを使用してサマリーを作成する場合、次のいずれかの方法でサマリーをリフレッシュします。

外部サマリー・テーブルは次の場合に役立ちます。

16.11 Oracle Enterprise EditionデータベースでEULアイテムにマッピングする場合の外部サマリー・テーブルとビューとの相違点

Oracle Enterprise Editionデータベースで、外部サマリー・テーブルまたはビューをEULアイテムにマッピングして、Discoverer Administratorにサマリー・フォルダを作成できます。ただし、ビューをEULアイテムにマッピングする場合、マテリアライズド・ビューは作成されません。この制限はOracle Enterprise Editionデータベースに適用されます。マテリアライズド・ビューが作成されない場合は、かわりにDiscovererサマリー・テーブルへのクエリー・リライトが使用されます。クエリー・リライトの詳細は、「クエリー・リライト」を参照してください。

Oracle Enterprise EditionデータベースでEULアイテムにマッピングする場合の外部サマリー・テーブルとビューとの相違点を次の表に示します。

テーブルのマッピング ビューのマッピング
外部サマリー・テーブルをEULアイテムにマッピングする場合、マテリアライズド・ビューの定義が作成されます。

この場合、マテリアライズド・ビューの定義はOracle Enterprise Editionデータベースのクエリー・リライトに使用されます。

外部ビューをEULアイテムにマッピングする場合、マテリアライズド・ビューは作成されません。

この場合、サマリー・フォルダはOracle Standard Editionデータベースと同じ方法で動作します。つまり、Discovererはクエリー・リライトして、Discovererサマリー・テーブルを使用します。


16.12 Oracle Enterprise Editionデータベースで1つの外部サマリー・テーブルに対して1つのマテリアライズド・ビューのみ登録可能な理由

Discoverer Administratorに外部サマリー・テーブルを登録すると、データベースに1つのマテリアライズド・ビューが作成されます(詳細は、「外部サマリー・テーブルに基づくサマリー・フォルダの作成方法」を参照)。マテリアライズド・ビューの名前は、常に外部サマリー・テーブルの名前と同一になります。Create Materialized View DDLコマンドのこの制限によって(Databaseサーバー内)、1つのテーブルに対して登録可能なのは1つのマテリアライズド・ビューのみになります。同じテーブルに対して複数の外部サマリー・フォルダを登録しようとすると、この制限を示すエラー・メッセージが表示されます。1つのサマリー・テーブルに対して複数の外部サマリー・フォルダを登録するには、サマリー・テーブル以外にデータベース・ビューを作成し、Discoverer Administrator内でそのデータベース・ビューを外部サマリーとして登録します。この場合、マテリアライズド・ビューはデータベース内で作成されず、かわりにDiscovererのサマリー管理またはクエリー・リライトのメカニズムが使用されます(詳細は、「クエリー・リライト」を参照)。データベース・ビューの作成方法の詳細は、データベース管理者に問い合せてください。

16.13 Oracle Enterprise Editionデータベースのリフレッシュ・オプション

Oracle Enterprise Editionデータベースは、大規模なデータ・ウェアハウスまたはデータベースでの作業を可能にする増分リフレッシュをサポートします(使用可能な場合)。リフレッシュ操作では並列性(詳細は次を参照)もサポートされています。

増分リフレッシュに必要な条件の詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。

16.14 Oracleデータベース間のインポート後のサマリー・フォルダのリフレッシュ

Oracle Standard EditionデータベースからOracle Enterprise Editionデータベースへのエクスポート

Oracle Standard Editionデータベースからサマリー・フォルダを持つビジネスエリアをエクスポートし、Oracle Enterprise Editionデータベースにインポートする場合、これらのサマリー・フォルダに対してマテリアライズド・ビューを作成する必要があります。マテリアライズド・ビューを作成するデータベース・サーバーでは、Discovererでサマリー・フォルダをリフレッシュする必要があります。

Oracle Enterprise EditionデータベースからOracle Standard Editionデータベースへのエクスポート

Oracle Enterprise Editionデータベースからサマリー・フォルダを持つビジネスエリアをエクスポートし、Oracle Standard Editionデータベースにインポートする場合、サマリー・フォルダをリフレッシュして、Discovererがサマリー・フォルダに基づいてサマリー・テーブルを作成できるようにする必要があります。