WITH ID句を使用したキャッシュ・グループのロードおよびリフレッシュ

LOAD CACHE GROUP文またはREFRESH CACHE GROUP文のWITH ID句を使用すると、WHERE句を使用しなくても、主キー列の値に基づいてキャッシュ・グループをロードまたはリフレッシュできます。

主キーに複数の列が含まれている場合は、WITH ID句の方が同等のWHERE句よりも便利です。WITH ID句を使用すると、キャッシュ・インスタンスを一度に1つずつロードできます。また、必要に応じて、ロード処理またはリフレッシュ処理を含むトランザクションをロールバックできますが、WHERE句を使用する同等の文では、WHERE句を使用するにはCOMMIT EVERY n ROWS句も指定する必要があるため、このようなロールバックができません。

次の例では、WITH ID句を使用してキャッシュ・グループをロードします。キャッシュ・グループrecent_ordersには、(orderiditemid)を主キーとするキャッシュ表sales.orderdetailsが1つ含まれています。顧客が特定の注文の品目に関して問い合せる場合、指定された注文番号および品目番号のキャッシュ・インスタンスをロードすることでその情報を取得できます。

キャッシュされたOracle Database表sales.orderdetailsorderid列の値が1756であり、itemid列の値が573である行を含む、recent_ordersキャッシュ・グループのsales.orderdetailsキャッシュ表をロードします:

LOAD CACHE GROUP recent_orders WITH ID (1756,573);

WHERE句を使用する同等のLOAD CACHE GROUP文は、次のとおりです。

LOAD CACHE GROUP recent_orders WHERE orderid = 1756 and itemid = 573
  COMMIT EVERY 256 ROWS;

キャッシュ・グループが動的でないかぎり、自動リフレッシュを使用したキャッシュ・グループに対して発行されるLOAD CACHE GROUP文またはREFRESH CACHE GROUP文にWITH ID句を含めることはできません。

WITH ID句とCOMMIT EVERY n ROWS句を併用することはできません。