論理表ソースの優先度の操作
このトピックでは、論理表ソースの優先順位を理解し、割り当てるために役立つ情報を提供します。
論理表ソースの優先順位の割当てについて
優先順位番号によって、問合せの回答に使用される論理表ソースが決まります。
たとえば、データ・ウェアハウスとOLTPソースのいずれによっても実現されるユーザー問合せが存在するとします。 業務系システムへのアクセスはコストが高く、データ・ウェアハウスへのアクセスはコストが低い場合がよくあります。 この場合、データ・ウェアハウスに高い優先度を割り当てることによって、すべての問合せは可能なかぎりデータ・ウェアハウスによって実現されるようにすることができます。
論理表ソースの優先度は、Oracle Analytics問合せエンジンで他のどのコスト・メトリックよりも前に考慮されるメトリックですが、表ソースの優先度グループによって、特定の問合せがそのソースで実現されることが常に決定されるわけではありません。 Oracle Analytics問合せエンジンでは、問合せに使用する論理表ソースを決定するために他の要素も使用されます。 「問合せに回答するためにファクト論理表ソースを選択する方法」および「問合せに回答するためにディメンション論理表ソースを選択する方法」を参照してください
優先度グループ番号を割り当てるには、論理表ソースを数値でランク付けします(0が最も優先度の高いソースです)。 複数のソースに同じ番号を割り当てて、優先度グループを作成できます。 たとえば、2つの論理表ソースに優先度グループ0を割り当て、別の2つの論理表ソースに優先度グループ1を割り当てることができます(以下同様)。 ほとんどの場合、2つの優先度グループ(0および1)のみが必要です。
優先度グループの割当てはオプションです。
問合せに回答するために使用する論理表ソースの選択を微調整する方法として優先度グループを使用しないことが重要です。 Oracle Analytics問合せエンジンは、最適な論理表ソースを自動的に使用しようとしますが、これは同じ優先度グループ内にかぎられます。 異なる優先度グループを各論理表ソースに設定すると、Oracle Analytics問合せエンジンは次善の論理表ソースを使用する可能性があります。
論理表ソースの優先順位の設定
論理表には、問合せで使用できる表ソースが複数含まれている場合があります。 このような場合、優先度番号を設定して、問合せで使用される論理表ソースを決定できます。
- ホーム・ページで、「ナビゲータ」、「セマンティック・モデル」の順にクリックします。
- 「セマンティック・モデル」ページで、セマンティック・モデルをクリックして開きます。
- 「論理レイヤー」をクリックします
- 「論理レイヤー」ペインで、優先度グループを割り当てるソースを含む表を参照してダブルクリックします。
- 論理表で、「ソース」タブをクリックします。
- ソースのリスト表で、問合せグループを割り当てるソース表をクリックし、「詳細ビュー」をクリックしてプロパティ・ペインを開きます。
- 「一般」までスクロールし、「優先度」フィールドをクリックして、優先度グループ番号を入力します。
- ソースのリスト表で、問合せグループを割り当てる別のソース表をクリックし、「詳細ビュー」をクリックしてプロパティ・ペインを開きます。
- 「一般」までスクロールし、「優先度」フィールドをクリックして、優先度グループ番号を入力します。
- 「保存」をクリックします。
問合せ時における表ソースの優先度ランキングの反転
セッション変数およびリクエスト変数を論理表ソースの優先度グループとともに使用して、問合せ時に論理表ソースの優先度を逆にすることができます。 この方法によって、ユーザーの好みに応じて実行時にソースを動的に選択する方法が提供されます。
- 動的選択を有効にするには、最初にセマンティック・モデルに
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
には、論理表ソースの優先度を永続的に逆に設定するサブジェクト領域のリストを設定します。 - SUBJECT_AREA_NAMEとREVERSIBLEの2つの列を持つSA_TABLEという名前の表を作成します。 この表には、次に示すように、サブジェクト・エリアの名前をその反転値(1または0)にマッピングする行を格納しておきます。
- SUBJECT_AREA_NAME - my_sa_1; REVERSIBLE - 1
- SUBJECT_AREA_NAME - my_sa_2; REVERSIBLE - 0
- 次に、行単位のセッション初期化ブロックを持つ、REVERSIBLE_LTS_PRIORITY_SA_VECという名前の文字列ベクトル・セッション変数を作成します。 この初期化ブロックの初期化文字列は次のようになります:
SELECT 'REVERSIBLE_LTS_PRIORITY_SA_VEC', SUBJECT_AREA_NAME FROM SA_TABLE WHERE REVERSIBLE=1