自動リフレッシュを使用する動的キャッシュ・グループのロードおよびリフレッシュ

動的キャッシュ・グループの自動リフレッシュ状態がPAUSEDの場合、特定のイベントが発生すると、自動リフレッシュ状態は自動的にONに変更されます。

  • そのキャッシュ表は当初空であり、その後、キャッシュ・グループに対して発行された動的ロード、LOAD CACHE GROUP文または無条件のREFRESH CACHE GROUP文が完了します。

  • そのキャッシュ表は空ではなく、その後、キャッシュ・グループに対して発行された無条件のREFRESH CACHE GROUP文が完了します。

動的キャッシュ・グループの自動リフレッシュ状態がPAUSEDである場合、次のイベントのいずれかが発生すると、自動リフレッシュ状態はPAUSEDのままとなります。

  • そのキャッシュ表は当初空であり、その後、キャッシュ・グループに対して発行されたREFRESH CACHE GROUP ... WITH ID文が完了します。

  • そのキャッシュ表は空ではなく、その後、キャッシュ・グループに対して発行された動的ロード、REFRESH CACHE GROUP ... WITH ID文またはLOAD CACHE GROUP文が完了します。

動的キャッシュ・グループの場合、自動リフレッシュ処理は、キャッシュ表の既存のキャッシュ・インスタンスのみがリフレッシュされるため、最後の自動リフレッシュ・サイクル以降にキャッシュされたOracle Database表でコミットされた更新および削除のみをキャッシュ表にリフレッシュするREFRESH CACHE GROUP文と似ています。新しいキャッシュ・インスタンスはキャッシュ表にロードされません。新しいキャッシュ・インスタンスを動的キャッシュ・グループのキャッシュ表にロードするには、LOAD CACHE GROUP文を使用するか、または動的ロード処理を実行します。「動的キャッシュ・グループ」を参照してください。

自動リフレッシュを使用する動的キャッシュ・グループを手動でロードまたはリフレッシュする場合は、次の制限が適用されます。

  • LOAD CACHE GROUP文を発行するには、自動リフレッシュ状態がPAUSEDまたはONになっている必要があります。

  • REFRESH CACHE GROUP文を発行するには、自動リフレッシュ状態がPAUSEDになっている必要があります。

  • WHERE句を含むLOAD CACHE GROUP文には、WHERE句の後にCOMMIT EVERY n ROWS句が含まれている必要があります。

  • REFRESH CACHE GROUP文にWHERE句を含めることはできません。

  • キャッシュ・グループのロード時にWHERE句で参照されるすべての表および列は、完全修飾されている必要があります。たとえば、次のようにします:

    owner.table_name and owner.table_name.column_name