ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

$VARCACHE

$VARCACHEプロパティは、AGGREGATEファンクションまたは$NATRIGGER式の実行結果である変数データを、Oracle OLAPが格納またはキャッシュするかどうかを指定するプロパティです。

構文

次のPROPERTY文を使用して、直近に定義または検討されたオブジェクト(DEFINEコマンドおよびCONSIDERコマンドを参照)に対し、$VARCACHEプロパティの追加または削除を行います。

  • プロパティを追加する場合は、次の文を発行します。

    PROPERTY '$VARCACHE' value

  • プロパティを削除する場合は、次の文を発行します。

    PROPERTY DELETE '$VARCACHE'

パラメータ

value

AGGREGATEファンクションまたは$NATRIGGER値の実行時に実行される計算の結果である変数データを、Oracle OLAPが配置する場所を示す次のいずれかのTEXT式。

  • VARIABLEは、AGGREGATEファンクションまたは$NATRIGGERプロパティの実行結果であるデータを変数に移入するように指定します。このオプションを指定した場合、集計結果のデータは、アナリティック・ワークスペースを更新またはコミットしたとき、永続的に変数に格納されます。

  • SESSIONは、AGGREGATEファンクションまたは$NATRIGGERプロパティの実行結果であるデータをセッション・キャッシュにキャッシュするように指定します(「Oracle OLAPセッション・キャッシュの概要」を参照)。このオプションを指定した場合、AGGREGATEファンクションまたは$NATRIGGERプロパティの実行結果であるデータは、更新時やコミット時には無視され、セッション後に廃棄されます。


    重要:

    SESSCACHEがNOに設定されている場合、SESSIONを指定してもOracle OLAPはデータをキャッシュしません。この場合、SESSIONの指定は、NONEの指定と同じことになります。

  • NONEは、AGGREGATEファンクションまたは$NATRIGGER値が実行されるたびに新しい変数データを計算するように指定します。データは格納もキャッシュもされません。

  • DEFAULTは、AGGREGATEファンクションによって計算されたデータの処理方法を決定する際に、Oracle OLAPが$VARCACHEプロパティを使用しないように指定します。(「集計データを格納またはキャッシュするかどうかのOracle OLAPによる決定方法」を参照してください。)

使用上の注意

$NATRIGGERの結果を格納またはキャッシュするかどうかのOracle OLAPによる決定方法

$NATRIGGER式が実行される際、式の実行結果である変数データをOracle OLAPが処理する方法は、$NATRIGGERプロパティを含む変数に$STORETRIGGERVALプロパティも含まれるかどうかに基づいて決定され、含まれない場合は$NATRIGGERプロパティの値がAGGREGATEファンクションであるかどうかに基づいて決定されます。

$NATRIGGER式が実行されると、Oracle OLAPでは次のプロセスに沿って処理方法が決定されます。

  1. $NATRIGGERプロパティを含む変数に、$STORETRIGGERVALプロパティも含まれているか。含まれている場合は、Oracle OLAPは手順1aに進みます。含まれていない場合は、Oracle OLAPは手順2に進みます。

    1. TRIGGERSTOREOKオプションの値は、YESか、それともNOか。YESの場合は、Oracle OLAPは手順1bに進みます。NOの場合は、Oracle OLAPは手順2に進みます。

    2. $STORETRIGGERVALプロパティの値は、YESか、それともNOか。YESの場合は、Oracle OLAPは$NATRIGGER式の結果を格納し、決定のプロセスを終了します。NOの場合は、Oracle OLAPは$NATRIGGER式の結果を格納せず、決定のプロセスを終了します。

  2. $NATRIGGER式はAGGREGATEファンクションか。当てはまる場合、Oracle OLAPは「集計データを格納またはキャッシュするかどうかのOracle OLAPによる決定方法」で説明されている手順に従って、$NATRIGGER式の実行結果の処理方法を決定します。当てはまらない場合、Oracle OLAPは手順3に進みます。

  3. $NATRIGGERプロパティを含む変数には$VARCACHEプロパティも含まれるか。含まれている場合は、Oracle OLAPは手順4に進みます。含まれていない場合は、Oracle OLAPは手順5に進みます。

  4. $VARCACHEプロパティに、DEFAULTの値が含まれるか。含まれている場合は、手順5に進みます。含まれない場合、Oracle OLAPは$VARCACHEプロパティの値(つまりSTORECACHEまたはNONE)を使用して、$NATRIGGER式の実行結果である変数データ値の処理方法を決定し、決定のプロセスを終了します。

  5. VARCACHEオプションの現行設定を使用して、$NATRIGGER式の実行結果である変数データ値の処理方法を決定し、決定のプロセスを終了します。

集計データを格納またはキャッシュするかどうかのOracle OLAPによる決定方法

AGGREGATEコマンドを実行すると、Oracle OLAPは代入文の結果を格納する場合と同様の方法で、常に計算結果を変数に直接格納します。ただし、AGGREGATEファンクションが実行される際、Oracle OLAPは、計算結果を直接変数に格納する場合と、セッション・キャッシュにキャッシュする場合があります。(セッション・キャッシュの詳細は、「Oracle OLAPセッション・キャッシュの概要」を参照してください。)

AGGREGATEファンクションの実行結果であるデータを格納する場所を決定するため、Oracle OLAPでは次のプロセスに沿って、集計された変数データを格納またはキャッシュするかどうかが判断されます。

  1. 現行のAGGREGATEファンクションにより使用されているaggmapの仕様に、CACHE文が含まれているか。含まれている場合は、Oracle OLAPは手順2に進みます。含まれていない場合、Oracle OLAPは手順3に進みます。

  2. CACHE文は、CACHE DEFAULT文か。当てはまる場合、Oracle OLAPは手順3に進みます。当てはまらない場合、Oracle OLAPは集計仕様のCACHE文を使用して、計算結果である変数データの処理方法を決定し、決定のプロセスを終了します。

  3. 集計される変数には$VARCACHEプロパティが含まれるか。含まれている場合は、Oracle OLAPは手順4に進みます。含まれていない場合は、Oracle OLAPは手順5に進みます。

  4. $VARCACHEプロパティに、DEFAULTの値が含まれるか。含まれている場合は、Oracle OLAPは手順5に進みます。含まれていない場合、Oracle OLAPは$VARCACHEプロパティの値を使用して、AGGREGATEファンクションによって計算される変数データの処理方法を決定し、決定のプロセスを終了します。

  5. VARCACHEオプションの現行設定を使用して、AGGREGATEファンクションによって計算される変数データの処理方法を決定します。決定のプロセスが終了します。

例4-13 $VARCACHEプロパティの設定

v1という名前の変数について、次の文を使用すると、Oracle OLAPはAGGREGATEファンクションまたは$NATRIGGER式の実行結果である変数データをキャッシュします。

CONSIDER v1
PROPERTY '$SVARCACHE' 'v1'