Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 12c (12.2.1.1.0) E77227-02 |
|
![]() 前へ |
![]() 次へ |
問合せで要求された列のセットを満たす論理表ソースが複数存在する場合、問合せでどの論理表ソースが使用されるかを決定するために、優先度グループ番号を設定することができます。
たとえば、データ・ウェアハウスとOLTPソースのいずれでも実現可能なユーザー問合せが存在するとします。通常、業務系システムへのアクセスはコストが高くなり、データ・ウェアハウスへのアクセスはコストが低くなります。この場合、データ・ウェアハウスに高い優先度を割り当てることによって、すべての問合せは可能なかぎりデータ・ウェアハウスによって実現されるようにすることができます。
特定の論理表ソースに優先度グループを割り当てても、必ずしもそのソースによって問合せが実現されるとは限らないことに注意してください。優先度グループの割当ては、特定の問合せで選択される論理表ソースを決定する際にOracle BIサーバーが使用する多くの要素の1つでしかありません。ただし、論理表ソースの優先度は最も重要なメトリックであり、他のコスト・メトリックの前に考慮されます。
優先度グループ番号を割り当てるには、論理表ソースを数値でランク付けします(0が最も優先度の高いソースです)。複数のソースに同じ番号を割り当てることができます。たとえば、2つの論理表ソースに優先度グループ0を割り当て、別の2つの論理表ソースに優先度グループ1を割り当てることができます(以下同様)。2つの優先度グループ(0と1)しか必要ない場合がよくあります。
優先度グループの割当てはオプションです。デフォルトでは、すべての論理表ソースに優先度0が設定されます。問合せに回答するために使用する論理表ソースの選択を微調整する方法として優先度グループを使用しないことは重要です。Oracle BIサーバーは、最適な論理表ソースを自動的に使用しようとしますが、これは同じ優先度グループの範囲内にかぎられます。論理表ソースごとに異なる優先度グループが設定されていると、Oracle BIサーバーは次善の論理表ソースを使用する可能性があります。
問合せの実行時に、論理表ソースの通常の優先度ランキングを逆にしたい場合があります。これを行うには、セッション変数およびリクエスト変数と、論理表ソースの優先度グループの組合せを使用します。この機能によって、ユーザーの好みに応じて実行時にソースを動的に選択する方法が提供されます。
この動的な選択を実現するには、最初にリポジトリ内にREVERSIBLE_LTS_PRIORITY_SA_VEC
セッション変数を作成する必要があります。この変数は、行単位のセッション初期化ブロックを使用する文字列ベクトル・セッション変数として作成します。REVERSIBLE_LTS_PRIORITY_SA_VEC
には、論理表ソースの優先度ランキングの反転をユーザーに許可するサブジェクト・エリアのリストを設定します。優先度ランキングの反転を有効にするには、この変数を定義する必要があります。
優先度ランキングの反転を許可する一連のサブジェクト・エリアを定義すると、ユーザーは問合せにリクエスト変数REVERSE_LTS_PRIORITY
を含めることによって、論理表ソースの優先度ランキングを反転させることができます。このリクエスト変数に1を設定すると論理表ソースの優先度は逆になり、0を設定すると通常の優先度のままになります。
問合せの実行時にリクエスト変数を使用する以外の別の方法として、論理表ソースの優先度を永続的に反転させるサブジェクト・エリアのセットをあらかじめ定義しておくという方法があります。これを行うには、リポジトリ内にセッション変数REVERSED_LTS_PRIORITY_SA_VEC
を作成します。この変数は、行単位のセッション初期化ブロックを使用する文字列ベクトル・セッション変数として作成します。REVERSED_LTS_PRIORITY_SA_VEC
には、論理表ソースの優先度を永続的に逆にするサブジェクト・エリアのリストを設定します。
管理ツールでセッション変数を定義する方法の詳細は、セッション変数の作成を参照してください。
REVERSIBLE_LTS_PRIORITY_SA_VEC
SUBJECT_AREA_NAMEとREVERSIBLEの2つの列を持つSA_TABLEという名前の表を作成します。この表には、次に示すように、サブジェクト・エリアの名前をその反転値(1または0)にマッピングする行を格納しておきます。
SUBJECT_AREA_NAME | REVERSIBLE |
---|---|
my_sa_1 |
1 |
my_sa_2 |
0 |
次に、行単位のセッション初期化ブロックを持つ、REVERSIBLE_LTS_PRIORITY_SA_VECという名前の文字列ベクトル・セッション変数を作成します。この初期化ブロックの初期化文字列は次のようになります。
SELECT 'REVERSIBLE_LTS_PRIORITY_SA_VEC', SUBJECT_AREA_NAME FROM SA_TABLE WHERE REVERSIBLE=1
この図は、この例における「セッション変数初期化ブロック」ダイアログを示しています。