TimesTen Classicでのスライド期間の構成
時間ベースのエージングを使用すると、キャッシュ・グループにスライド期間が実装されます。
スライド期間構成では、表に特定の時間間隔を満たすデータのみが含まれるように、定期的に新しい行がキャッシュ表に挿入され、古い行がキャッシュ表から削除されます。
キャッシュ・グループにスライド期間を構成するには、増分自動リフレッシュ・モードを使用し、時間ベースのエージング・ポリシーを定義します。自動リフレッシュ処理では、キャッシュされたOracle Database表にある行のタイムスタンプをチェックして、TimesTenキャッシュ表に新しいデータをリフレッシュする必要があるかどうかが決定されます。システム時刻およびタイムゾーンは、Oracle DatabaseとTimesTenの各システムで同じである必要があります。
キャッシュ・グループで増分自動リフレッシュ・モードを使用しない場合、スライド期間を構成するには、LOAD CACHE GROUP
文、REFRESH CACHE GROUP
文またはINSERT
文を使用するか、動的ロード処理を使用して、新しいデータをキャッシュ表に挿入します。
次の例では、読取り専用キャッシュ・グループrecent_shipped_orders
に対してスライド期間を構成します。
CREATE READONLY CACHE GROUP recent_shipped_orders AUTOREFRESH MODE INCREMENTAL INTERVAL 1440 MINUTES STATE ON FROM sales.orders (ord_num NUMBER(10) NOT NULL, cust_num NUMBER(6) NOT NULL, when_placed DATE NOT NULL, when_shipped DATE NOT NULL, PRIMARY KEY(ord_num)) AGING USE when_shipped LIFETIME 30 DAYS CYCLE 24 HOURS ON;
キャッシュされたOracle Database表sales.orders
の新しいデータは、1440分ごとにTimesTenキャッシュ表sales.orders
に自動的にリフレッシュされます。現在のシステム・タイムスタンプとwhen_shipped
列のタイムスタンプの差が30日を超えるキャッシュ・インスタンスは、エージングの対象となります。エージング・プロセスによって24時間ごとにチェックが行われ、キャッシュ表からエージ・アウトできるキャッシュ・インスタンスがあるかどうかが確認されます。したがって、このキャッシュ・グループには、過去30日以内に送信された注文が保存されます。
エージングに使用される自動リフレッシュ間隔および存続期間によって、特定の行がキャッシュ表内に保持される期間が決定します。キャッシュ表で存続期間が経過するのを待たずにデータがキャッシュ表からエージ・アウトされる可能性があります。たとえば、読取り専用キャッシュ・グループでは、自動リフレッシュ間隔が3日で存続期間が30日である場合、キャッシュ表にリフレッシュされたときにすでに3日経過しているデータは27日後に削除されますが、これはエージングがキャッシュ表にデータがリフレッシュされたときではなく、TimesTenキャッシュ表にロードされるキャッシュされたOracle Database表の行に保存されたタイムスタンプに基づいているためです。