読取り専用キャッシュ・グループの増分自動リフレッシュの選択制限の構成

読取り専用キャッシュ・グループの増分自動リフレッシュを容易にするために、TimesTenはOracle Databaseの実表とその対応する変更ログ表の両方に表の結合問合せを実行して、増分の変更を取得します。ただし、両方の表が非常に大きい場合は、結合問合せが遅くなる可能性があります。また、結合問合せの処理中にOracle Databaseの実表が常に更新されている場合、長期実行自動リフレッシュ問合せからORA-01555「Snapshot too old」エラーを受信する可能性があります。

この状況を回避するために、静的な読取り専用キャッシュ・グループに対する選択制限を使用して増分自動リフレッシュを構成できます。選択制限はOracle Databaseの実表を自動リフレッシュ変更ログ表の制限された行数と結合します。ttCacheAutorefreshSelectLimit組込みプロシージャを使用して選択制限を構成できます。

ノート:

選択制限は、静的な読取り専用キャッシュ・グループに対してのみ設定できます。インスタンスの一貫性を保護するには、単一の表のみを持つキャッシュ・グループにのみ選択制限を設定することをお薦めします。

自動リフレッシュは自動リフレッシュ変更ログ表のすべての行が適用されるまで、キャッシュ表に対する変更を適用し続けます。適用する行がなくなった場合、自動リフレッシュ・スレッドは残りの時間間隔内で休止状態になります。

ノート:

『Oracle TimesTen In-Memory Databaseリファレンス』「ttCacheAutorefreshSelectLimit」を参照してください。

たとえば、大規模なトランザクションの前にttCacheAutorefreshSelectLimit組込みプロシージャをコールして、間隔の値が10秒の増分自動リフレッシュを使用したキャッシュ・グループの選択制限を1000行に設定します。次の例では、valueONに設定します。

Command> call ttCacheAutorefreshSelectLimit('10000', 'ON');
< 10000, ON >
1 row found.

次の例では、間隔の値が7秒の増分自動リフレッシュを使用したキャッシュ・グループに対して選択制限を2000行に設定します。

Command> call ttCacheAutorefreshSelectLimit('7000', '2000');
< 7000, 2000 >
1 row found.

valueOFFに設定することで、間隔の値が10秒の増分自動リフレッシュを使用したキャッシュ・グループの選択制限を無効にできます。

Command> call ttCacheAutorefreshSelectLimit('10000', 'OFF');
< 10000, OFF >
1 row found.

次の各項では、増分自動リフレッシュを使用した静的な読取り専用キャッシュ・グループの選択制限を構成する際の詳細を説明します。