キャッシュ・グループのアンロード
UNLOAD CACHE GROUP
文を使用すると、一部またはすべてのキャッシュ・インスタンスをキャッシュ・グループのキャッシュ表から削除できます。
DROP CACHE GROUP
文とは異なり、キャッシュ・グループをアンロードしてもキャッシュ表自体は削除されません。
アンロード処理が単一のトランザクション内で多数のキャッシュ・インスタンスを処理すると同時実行性およびスループットが大幅に低下するため、これを避けるには、COMMIT EVERY
n
ROWS
句を使用して、コミット頻度を指定します。
自動リフレッシュを使用したキャッシュ・グループでUNLOAD CACHE GROUP
文を使用する場合は注意が必要です。アンロードした行またはその関連する親行または子行をキャッシュされたOracle Database表で更新した場合、自動リフレッシュ処理の結果、その行がキャッシュ表に再表示されることがあります。
AWTキャッシュ・グループに対するUNLOAD CACHE GROUP
文の処理は、行に対する更新がOracle Databaseに伝播されるまで待機します。
次の例では、customer_orders
キャッシュ・グループのすべてのキャッシュ表からすべてのキャッシュ・インスタンスをアンロードします。コミット頻度が指定されているため、256行ごとにコミットすることにより、複数のトランザクションにわたって処理が実行されます。
UNLOAD CACHE GROUP customer_orders COMMIT EVERY 256 ROWS;
次の文では、単一のトランザクションでcustomer_orders
キャッシュ・グループのすべてのキャッシュ表からすべてのキャッシュ・インスタンスをアンロードします。単一のトランザクションは、customer_orders
内のデータが小さい場合にのみ使用する必要があります。
UNLOAD CACHE GROUP customer_orders;
次の同等の文では、new_customers
キャッシュ・グループのキャッシュ表から顧客番号227のキャッシュ・インスタンスを削除します。
UNLOAD CACHE GROUP new_customers WITH ID (227); UNLOAD CACHE GROUP new_customers WHERE (sales.customer.cust_num = 227);
『Oracle TimesTen In-Memory Database SQLリファレンス』の「UNLOAD CACHE GROUP」を参照してください。