動的ロードのガイドライン
この項では、主問合せで参照される各キャッシュ・グループのキャッシュ・インスタンスで発生する動的ロードのガイドラインを示します。
ノート:
これらのガイドラインの例は、「単一キャッシュ・インスタンスの動的ロードの例」を参照してください。
キャッシュ・インスタンスの動的ロードは、動的キャッシュ・グループのキャッシュ表に対して発行された次のタイプの文にのみ使用できます。
-
INSERT
文が、現在TimesTenの表には存在していないキャッシュ・インスタンスのいずれかの子表に値を挿入する場合、新しい行が所属するキャッシュ・インスタンスは動的にロードされます。新しい子の行に対するこの挿入処理は、キャッシュされたOracle Database表に伝播されます。 -
SELECT
文、UPDATE
文またはDELETE
文では、「動的キャッシュ・グループ」で説明されているように、WHERE
句に条件が存在する必要があります。
動的ロードを使用できるSELECT
文、UPDATE
文またはDELETE
文では、次の条件が満たされている必要があります。
-
文に副問合せが含まれていた場合、主問合せで参照される表を持つキャッシュ・グループのみが動的ロードの対象とみなされます。
-
文がキャッシュ・グループの複数の表を参照する場合、その文にはすべての親子関係の主キーと外部キーの間の等結合条件が含まれている必要があります。
-
文には、
UNION
、INTERSECT
またはMINUS
集合演算子を含めることはできません。 -
文はキャッシュ表以外の表を参照することができます。
-
文が参照できるのは、1つの動的キャッシュ・グループのキャッシュ表のみです。
DynamicLoadEnable=1
を設定し、リクエストが次のルールを渡す場合に、キャッシュ・インスタンスの動的ロードが発生します。
-
キャッシュ・グループに対するキャッシュ・インスタンスの動的ロードは、キャッシュ・グループの任意の表がいずれかの
FROM
句で複数回指定されている場合には発生しません。 -
問合せで指定された条件のみが動的ロードの対象とみなされ、これにはいずれの派生条件も含まれません。
-
任意のキャッシュ・グループが副問合せでのみ参照される場合、動的ロードの対象とはみなされません。
-
アクティブ・スタンバイ・ペア・レプリケーション・スキームを使用するときには、動的ロードはどのサブスクライバでも発生することができません。
次の考慮事項は動的ロードに影響を与える可能性があります。
-
複数のキャッシュ・グループ内の表またはキャッシュ・グループ以外の表が主問合せで指定された場合は、キャッシュ・インスタンスがロードされるかどうかは結合順序により影響を受けます。問合せの処理中に動的ロードが可能で問合せの結果を出すことが必要な場合、動的ロードが発生します。ただし、返される行がない場合、一部またはすべてのキャッシュ・インスタンスが動的にロードされません。
-
文がキャッシュ・グループの表に対して複数の動的ロード条件を指定した場合、追加条件がその文に適格ではない場合もキャッシュ・インスタンスが動的にロードされる場合があります。
動的キャッシュ・グループではエージングを使用できます。TimesTenでは、最低使用頻度(LRU)エージングおよび時間ベースのエージングの2つのエージング・タイプがサポートされています。デフォルトでは、動的キャッシュ・グループ内にあるデータはLRUエージングの対象です。動的キャッシュ・グループでの時間ベースのエージングでは、LRUエージングが上書きされます。キャッシュ・グループに時間ベースのエージング・ポリシーが定義されている場合、キャッシュ・インスタンスをロードするには、ルート表の行のタイムスタンプがエージング・ポリシーの存続期間内にある必要があります。
動的AWTキャッシュ・グループ内の行は、エージングの対象となる前に、Oracle Databaseに伝播される必要があります。
ttAgingLRUConfig
組込みプロシージャを使用すると、エージング・サイクルおよびTimesTenデータベースの領域使用状況のしきい値に対するデフォルトまたは現在のLRUエージング属性設定を上書きできます。「TimesTen Classicのキャッシュ・グループでのエージングの実装」を参照してください。