キャッシュ・グループの手動ロードまたは動的ロード

キャッシュ・グループの定義中に、キャッシュ・グループを手動でロードするか動的にロードするかを定義します。

ノート:

静的キャッシュ・グループは、DYNAMICキーワードなしで作成されるグループです。静的キャッシュ・グループは、TimesTen ClassicとTimesTen Scaleoutの両方でサポートされています。『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』「TimesTen Scaleoutでのキャッシュ・グループの使用」を参照してください。

動的キャッシュ・グループは、DYNAMICキーワードを使用して作成されます。動的キャッシュ・グループは、TimesTen Classicでのみサポートされています。

  • 手動でロード: 静的キャッシュ・グループまたは動的キャッシュ・グループにデータを手動でロードできます。常に静的キャッシュ・グループに手動でデータをロードします。LOAD CACHE GROUP文を使用して、キャッシュされたOracle Database表から静的または動的キャッシュ・グループへのデータの初期ロードを実行します。

  • リクエストに応じて動的にロード: 動的キャッシュ・グループの場合のみ、TimesTenはリクエストに応じてデータを動的にロードできます。対象となるSELECT文、INSERT文、UPDATE文またはDELETE文がTimesTenキャッシュ表のいずれかに対して発行され、データがそのキャッシュ表には存在しないもののキャッシュされたOracle Database表には存在すると、そのデータはキャッシュされたOracle Database表からTimesTenキャッシュ表に自動的にロードされます。

静的キャッシュ・グループと動的キャッシュ・グループの両方で、LOAD CACHE GROUP文は、キャッシュされたOracle Database表に存在してTimesTenのキャッシュ表には存在しない対象データを指定されたキャッシュ表に手動でロードします。ただし、キャッシュ表に行が存在する場合に、キャッシュされたOracle Database表にその行より新しいバージョンが存在すると、その行はLOAD CACHE GROUP文の条件を満たしていてもキャッシュ表にロードされません。

これに対して、REFRESH CACHE GROUP文では、キャッシュ表に存在する対象行を手動でリロードし、キャッシュの内容を効率的にリフレッシュします。静的なキャッシュ・グループの場合、リフレッシュされる行は、REFRESH CACHE GROUP文の条件を満たすすべての行です。ただし、動的キャッシュ・グループの場合、リフレッシュされる行は、条件を満たし、キャッシュ表にすでに存在する行です。つまり、最終的にリフレッシュされる行は、キャッシュされたOracle Database表で更新または削除された行であり、挿入された行ではありません。したがって、リフレッシュ処理では、キャッシュ表にすでに存在する行のみが処理されます。リフレッシュが行われても、動的キャッシュ・グループのキャッシュ表に新しい行はロードされません。

動的読取り専用キャッシュ・グループのキャッシュ・インスタンス内にあるデータは、Oracle Database表の対応する行内にあるデータと一貫性があります。自動リフレッシュの状態と間隔設定を考慮すると、静的なキャッシュ・グループのキャッシュ・インスタンス内にあるデータは、Oracle Database表の対応する行内にあるデータと常に一貫性があります。