読取り専用キャッシュ・グループの増分自動リフレッシュの選択制限の構成
読取り専用キャッシュ・グループの増分自動リフレッシュを容易にするために、TimesTenはOracle Databaseの実表とその対応する変更ログ表の両方に表の結合問合せを実行して、増分の変更を取得します。ただし、両方の表が非常に大きい場合は、結合問合せが遅くなる可能性があります。また、結合問合せの処理中にOracle Databaseの実表が常に更新されている場合、長期実行自動リフレッシュ問合せからORA-01555
「Snapshot too old」エラーを受信する可能性があります。
この状況を回避するために、静的な読取り専用キャッシュ・グループに対する選択制限を使用して増分自動リフレッシュを構成できます。選択制限はOracle Databaseの実表を自動リフレッシュ変更ログ表の制限された行数と結合します。ttCacheAutorefreshSelectLimit
組込みプロシージャを使用して選択制限を構成できます。
ノート:
選択制限は、静的な読取り専用キャッシュ・グループに対してのみ設定できます。インスタンスの一貫性を保護するには、単一の表のみを持つキャッシュ・グループにのみ選択制限を設定することをお薦めします。
自動リフレッシュは自動リフレッシュ変更ログ表のすべての行が適用されるまで、キャッシュ表に対する変更を適用し続けます。適用する行がなくなった場合、自動リフレッシュ・スレッドは残りの時間間隔内で休止状態になります。
ノート:
『Oracle TimesTen In-Memory Databaseリファレンス』の「ttCacheAutorefreshSelectLimit」を参照してください。
たとえば、大規模なトランザクションの前にttCacheAutorefreshSelectLimit
組込みプロシージャをコールして、間隔の値が10秒の増分自動リフレッシュを使用したキャッシュ・グループの選択制限を1000行に設定します。次の例では、value
をON
に設定します。
Command> call ttCacheAutorefreshSelectLimit('10000', 'ON'); < 10000, ON > 1 row found.
次の例では、間隔の値が7秒の増分自動リフレッシュを使用したキャッシュ・グループに対して選択制限を2000行に設定します。
Command> call ttCacheAutorefreshSelectLimit('7000', '2000'); < 7000, 2000 > 1 row found.
value
をOFF
に設定することで、間隔の値が10秒の増分自動リフレッシュを使用したキャッシュ・グループの選択制限を無効にできます。
Command> call ttCacheAutorefreshSelectLimit('10000', 'OFF'); < 10000, OFF > 1 row found.
次の各項では、増分自動リフレッシュを使用した静的な読取り専用キャッシュ・グループの選択制限を構成する際の詳細を説明します。
- 選択制限がある間隔を決定するには、「特定の選択制限がある間隔を決定する方法」を参照してください。
-
この自動リフレッシュ間隔の増分自動リフレッシュ・トランザクションの統計を取得するには、「自動リフレッシュ・トランザクションに関する統計情報の取得」を参照してください。これにより、特定の自動リフレッシュ間隔の選択制限の実行方法が決定されます。