FLUSH CACHE GROUP
この文は、TimesTen Scaleoutではサポートされていません。
TimesTen Classicの場合:
FLUSH CACHE GROUP文は、TimesTenキャッシュ表のデータをOracle Database表にフラッシュします。この文は、ユーザー管理キャッシュ・グループでのみ使用できます。
この操作には、WHERE句を受け入れる操作およびWITH ID句を受け入れる操作の2つのタイプがあります。
FLUSH CACHE GROUPは、コミットの伝播(TimesTenからOracle Databaseへ)がオフになっているときに使用します。コミットのすべてのトランザクションを伝播するのではなく、変更をOracle Databaseに伝播する前に多数のトランザクションをコミットできます。Oracle Databaseにキャッシュ・インスタンスが存在する場合は、キャッシュ・インスタンスIDごとに更新操作が実行されます。Oracle Databaseにキャッシュ・インスタンスが存在しない場合は、TimesTenによって挿入されます。
この機能は、注文がマスターOracle Database表にコミットされる前に、高速キャッシュとしてTimesTenを使用する、カートへの変更が頻繁に行われるショッピング・カート・アプリケーションなどで役立ちます。
ノート:
通常、WHERE句を使用するより、WITH ID句を使用した方が高いシステム・パフォーマンスが得られます。
挿入と更新のみがフラッシュされます。挿入は、Oracle Database表にレコードが存在しない場合は挿入として、または(レコードがすでに存在する場合は)更新として伝播されます。削除をフラッシュすることはできません。つまり、TimesTenでレコードが削除された場合に、その削除をOracle Database表にフラッシュする方法はありません。削除は、手動で、またはコミット伝播をオンにすることで伝播する必要があります。削除されたレコードをフラッシュしようとすると、暗黙的に無視されます。エラーや警告は発行されません。READ ONLYまたはPROPAGATEとして指定されている表のレコードをOracle Database表にフラッシュすることはできません。
必要な権限
キャッシュ・グループの所有者に必要な権限はありません。
別のユーザーのキャッシュ・グループの場合はFLUSHまたはFLUSH ANY CACHE GROUPが必要です。
基礎となる表に対するINSERT権限、DELETE権限、UPDATE権限。
TimesTen Scaleoutでの使用
この文は、TimesTen Scaleoutではサポートされていません。
SQL構文
FLUSH CACHE GROUP [Owner.]Cache [WHERE ConditionalExpression]
または
FLUSH CACHE GROUP [Owner.]CacheGroupName WITH ID (ColumnValueList)
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
フラッシュされるキャッシュ・グループの名前。 |
|
|
|
|
|
|
説明
-
通常、
WHERE句は、単一またはすべてのキャッシュ・インスタンスを対象に使用するものではなく、キャッシュ・インスタンスのセットに対して使用します。フラッシュ操作にWHERE句を使用して、Oracle Databaseに送信するキャッシュ・インスタンスを決定します。 -
一般的には、
FLUSH CACHE GROUP文のWHERE句の列名を完全に修飾する必要はありません。ただし、同一キャッシュ・グループ内の複数の表を結合する問合せがTimesTenによって自動的に生成されるため、キャッシュ・グループ内に同じ名前の列を持つ表が複数ある場合は、列を完全に修飾する必要があります。所有者名を指定しない場合、キャッシュ・グループのWHERE句によって参照されるすべての表は、キャッシュ・グループ操作を実行している現在のログイン名が所有しています。 -
WHERE句を省略した場合、キャッシュ・グループの内容全体がOracle Database表にフラッシュされます。WHERE句を指定した場合、ルート表のみを含めることができます。 -
FLUSH CACHE GROUP文の実行後、ODBC関数SQLRowCount()、JDBCメソッドgetUpdateCount()、およびOCI_ATTR_ROW_COUNT引数を指定したOCI関数OCIAttrGet()によって、フラッシュされたキャッシュ・インスタンスの数が返されます。 -
WITH ID句を使用して、バインディング・パラメータを指定します。
制限
次をフラッシュするときには、WITH ID句を使用しないでください。
-
AUTOREFRESH属性を持つ静的ユーザー管理キャッシュ・グループ -
AWTまたはSWTキャッシュ・グループ
例
FLUSH CACHE GROUP marketbasket; FLUSH CACHE GROUP marketbasket WITH ID(10);
関連項目