キャッシュ・グループにデータをロードする方法

Oracle Databaseのデータは、LOAD CACHE GROUP文を使用して、キャッシュ・グループに事前にロードできます。キャッシュ・グループ・タイプによっては、オプションのWHERE句を使用して、キャッシュするデータの量を制限することもできます。動的キャッシュ・グループの場合は、キャッシュ表に対してSELECT INSERTUPDATEまたはDELETE文が発行された場合にもデータがロードされます。

次の例は、Oracle表からキャッシュ・グループにデータをロードする方法を示しています。

5. キャッシュ・グループへのデータの事前ロード

a. CACHE_MANAGERまたはLOAD CACHE GROUP権限を持つユーザーのみがキャッシュ・グループにデータをロードできます。読取り専用のキャッシュ・グループcacheadm.roを移入するには、ttIsqlで次のLOAD CACHE GROUP文を入力します。
   
 

load cache group ro commit every 256 rows;

   
 
   
b. IDが200よりも大きい従業員レコードを持つ動的キャッシュ・グループcacheadm.g_awtを事前にロードするには、ttIsqlに次のLOAD CACHE GROUP文を入力します。
   
  load cache group g_awt where employees.employee_id > 200 commit every 0 rows;
   
 
   
  注意: グローバル・キャッシュ・グループでは、キャッシュ・グリッドにキャッシュ・インスタンスがすでに存在する場合、LOAD CACHE GROUP文が失敗します。
   
データをロードすると、読取り専用キャッシュ・グループの自動リフレッシュ状態が、ONに変わります。定義されたリフレッシュ時間隔に到達すると、Oracleで基礎となる自動リフレッシュ表に対して行った変更がキャッシュ表に適用されます。非同期WRITETHROUGHキャッシュ・グループでは、レプリケーション・エージェント・プロセスが起動されて実行されている場合に、キャッシュ・データベースのすべての更新がOracle Databaseに伝播されます。
   

キャッシュ・グループへのデータの動的なロード

動的キャッシュ・グループでは、キャッシュされた表に問合せを発行して行が検出されなかった場合、その問合せがOracleで実行されます。該当する行が見つかった場合、その行は問合せに対して返されて、TimesTenキャッシュ表に挿入されます。動的なグローバル・キャッシュ・グループは、Oracle Databaseに問合せを行う前に、他のグリッド・メンバーでデータを検索します。次の例は、動的キャッシュ・グループにオンデマンドでデータをロードする方法を示しています。

a. (TimesTenとOracleの両方のパスワードを渡して)キャッシュ表ユーザーhrとしてttIsqlにログインします。
   
  connect "dsn=cachedb1_1121;uid=hr; pwd=hr; oraclepwd=hr";
   
b. 前述のLOAD CACHE GROUP文からロードされたレコードをリストするには、hr.employees表から選択します。
   
  select employee_id, first_name from employees;
   
 
   
c.

動的キャッシュ・グループにデータをロードするには、キャッシュ表の主キーまたは外部キーに対する問合せで、等価句WHEREを使用する必要があります。

   
  select first_name, last_name from employees where employee_id=100;
select count(*) from employees;
   
 
   
d. 子のキャッシュ表に対してWHERE句の問合せを実行すると、子と親の両方のレコードがキャッシュ・データベースにロードされます。
   
 

select employee_id, start_date, end_date from job_history where employee_id=200;
select count(*) from employees;

   
 

 

 

<戻る 1 2