ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース11.2.1
B56051-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

CREATE CACHE GROUP

CREATE CACHE GROUP文は、次の処理を実行します。

キャッシュ・グループとは、Oracle Databaseの表からデータをキャッシュする表のセットのことで、外部キーを介して関連付けられます。 ルート表は1つで、この表は他の表を参照しません。 キャッシュ・グループに含まれる他のすべてのキャッシュ表は、キャッシュ・グループ内の表を1つのみ参照します。つまり、外部キーのリレーションシップによってツリーが形成されます。

キャッシュ表は、次の条件を満たす行の集合です。

データ・ストアに2つ以上のキャッシュ・グループがある場合、キャッシュ・グループは別々のOracle(およびTimesTen)表に対応している必要があります。

キャッシュ・グループ・インスタンスは、ルート表の1つの行と、ルート表の行に直接的または間接的に関連付けられている子表のすべての行を参照します。

ユーザー管理キャッシュ・グループおよびシステム管理キャッシュ・グループ

キャッシュ・グループは、システム管理またはユーザー管理のいずれかになります。

システム管理キャッシュ・グループは、TimesTenによって完全に管理され、プロパティは固定されています。 システム管理キャッシュ・グループには次のタイプがあります。

ローディングやアンローディングなど、システム管理のキャッシュ・グループはTimesTenによって管理されるため、これらのキャッシュ・グループの定義では、次のような特定の文や句は使用できません。

FLUSH CACHE GROUPおよびREFRESH CACHE GROUP操作は、AWTおよびSWTキャッシュ・グループでは使用できません。

AWTキャッシュ・グループを作成する前に、レプリケーション・エージェントを停止する必要があります。

ユーザー管理キャッシュ・グループは、アプリケーションまたはユーザーによって管理される必要があります。 ユーザー管理キャッシュ・グループのPROPAGATEは、同期型です。表レベルのREADONLYキーワードは、ユーザー管理キャッシュ・グループでのみ使用できます。

さらに、TimesTenとOracleの両方が、すべてのWHERE句を解析できる必要があります。

明示的にロードされるキャッシュ・グループおよび動的キャッシュ・グループ

キャッシュ・グループは、明示的または動的にロードできます。

明示的にロードされるキャッシュ・グループでは、LOAD CACHE GROUPまたはREFRESH CACHE GROUP文を使用してOracle表からTimesTenキャッシュ表に手動で新しいキャッシュ・インスタンスをロードするか、または自動リフレッシュ操作を使用して自動でロードします。

動的キャッシュ・グループでは、LOAD CACHE GROUPを使用してTimesTenキャッシュ表に手動で新しいキャッシュ・インスタンスをロードするか、または動的ロード操作を使用して要求時にロードできます。 動的キャッシュ・グループでの手動リフレッシュ操作または自動リフレッシュ操作では、既存のキャッシュ・インスタンスの更新または削除はできますが、新しいキャッシュ・インスタンスの挿入またはロードはできません。

どのキャッシュ・グループ・タイプ(READONLY、ASYNCHRONOUS WRITETHROUGH、SYNCHRONOUS WRITETHROUGH、USERMANAGED)でも、明示的にロードされるキャッシュ・グループとして定義できます。

AUTOREFRESHキャッシュ・グループ属性とPROPAGATEキャッシュ表属性の両方を持つユーザー管理キャッシュ・グループを除いて、どのキャッシュ・グループ・タイプでも動的キャッシュ・グループとして定義できます。

LRUエージングがデフォルトで定義されているため、動的キャッシュ・グループのデータはエージ・アウトされます。 ttAgingLRUConfig組込みプロシージャを使用して、LRUエージングの領域使用しきい値を上書きします。 また、動的キャッシュ・グループに時間ベースのエージングを定義して、LRUエージングを上書きすることもできます。

明示的にロードされるキャッシュ・グループおよび動的キャッシュ・グループの詳細は、『Oracle In-Memory Database Cacheユーザーズ・ガイド』を参照してください。 動的ロード操作の詳細は、『Oracle In-Memory Database Cacheユーザーズ・ガイド』のキャッシュ・グループの動的ロードに関する説明を参照してください。

ローカル・キャッシュ・グループおよびグローバル・キャッシュ・グループ

ローカル・キャッシュ・グループまたはグローバル・キャッシュ・グループを作成できます。

ローカル・キャッシュ・グループでは、キャッシュ表のデータは、TimesTenデータベースが同じキャッシュ・グリッドのメンバーであってもTimesTenデータベース間で共有されません。 そのため、データベースに重複したデータまたは同じデータが含まれる可能性があります。 どのキャッシュ・グループ・タイプでもローカル・キャッシュ・グループとして定義できます。 ローカル・キャッシュ・グループは、動的または明示的にロードできます。

グローバル・キャッシュ・グループでは、キャッシュ表のデータはキャッシュ・グリッド内のTimesTenデータベース間で共有されます。 異なるグリッド・メンバーによる同じデータへの更新は、グリッドによって調整されます。 動的なAWTキャッシュ・グループのみ、グローバル・キャッシュ・グループとして定義できます。

ローカル・キャッシュ・グループおよびグローバル・キャッシュ・グループの詳細は、『Oracle In-Memory Database Cacheユーザーズ・ガイド』を参照してください。 特に、『Oracle In-Memory Database Cacheユーザーズ・ガイド』のグリッド・メンバー間でのデータ共有の例に関する説明を参照してください。

必要な権限

CREATE CACHE GROUPまたはCREATE ANY CACHE GROUPおよび

CREATE TABLE(キャッシュ・グループ内のすべての表が現在のユーザーによって所有されている場合)またはCREATE ANY TABLE(キャッシュ・グループ内の1つ以上の表が現在のユーザーによって所有されていない場合)

SQL構文

キャッシュ・グループのタイプごとに、次のようなCREATE CACHE GROUP文があります。

グローバル・キャッシュ・グループを作成するCREATE CACHE GROUP文は、次のとおりです。

CREATE READONLY CACHE GROUP

READONLYのキャッシュ・グループは、次の構文で作成します。

CREATE [DYNAMIC] READONLY CACHE GROUP [Owner.]GroupName
 [AUTOREFRESH
  [MODE {INCREMENTAL | FULL}]
  [INTERVAL IntervalValue {MINUTE[S] | SECOND[S] | MILLESECOND[S] }]
  [STATE {ON|OFF|PAUSED}]
 ]
 FROM
  {[Owner.]TableName (
    {ColumnDefinition[,…]}
    [,PRIMARY KEY(ColumnName[,…])]
    [,FOREIGN KEY(ColumnName [,…])
            REFERENCES RefTableName (ColumnName [,…])
                    [ON DELETE CASCADE]
 [UNIQUE HASH ON (HashColumnName[,…]) PAGES=PrimaryPages]
 [WHERE ExternalSearchCondition]
 [AGING USE ColumnName
        LIFETIME Num1 {MINUTE[S] |HOUR[S] | DAY[S]}
        [CYCLE Num2 {MINUTE[S] |HOUR[S] |DAY[S]}]
 [ON|OFF]
 ]
} [,...];

CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP

ASYNCHRONOUS WRITETHROUGHのキャッシュ・グループは、次の構文で作成します。

CREATE [DYNAMIC] [ASYNCHRONOUS] WRITETHROUGH CACHE GROUP   [Owner.]GroupName
  FROM
   {[Owner.]TableName (
     {ColumnDefinition[,…]}
    [,PRIMARY KEY(ColumnName[,…])]
     [FOREIGN KEY(ColumnName [,…])
          REFERENCES RefTableName (ColumnName [,…])]
                         [ ON DELETE CASCADE ]
 UNIQUE HASH ON (HashColumnName[,…]) PAGES=PrimaryPages]
 [AGING {LRU|
     USE ColumnName
          LIFETIME Num1 {MINUTE[S] |HOUR[S] |DAY[S]}
         [CYCLE Num2 {MINUTE[S] |HOUR[S] |DAY[S]}]
     }[ON|OFF]
 ]
} [,...];

CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP

SYNCHRONOUS WRITETHROUGHのキャッシュ・グループは、次の構文で作成します。

CREATE [DYNAMIC] SYNCHRONOUS WRITETHROUGH
CACHE GROUP [Owner.]GroupName
 FROM
   {[Owner.]TableName (
     {ColumnDefinition[,…]}
    [,PRIMARY KEY(ColumnName[,…])]
     [FOREIGN KEY(ColumnName [,…])
            REFERENCES RefTableName (ColumnName [,…])}]
                             [ ON DELETE CASCADE ]
 [UNIQUE HASH ON (HashColumnName[,…]) PAGES=PrimaryPages]
 [AGING {LRU|
     USE ColumnName
         LIFETIME Num1 {MINUTE[S] |HOUR[S] |DAY[S]}
         [CYCLE Num2 {MINUTE[S] |HOUR[S] |DAY[S]}]
     }[ON|OFF]
 ]
} [,...];

CREATE USERMANAGED CACHE GROUP

ユーザー管理キャッシュ・グループは、次の構文で作成します。

CREATE [DYNAMIC][USERMANAGED] CACHE GROUP [Owner.]GroupName
 [AUTOREFRESH
   [MODE {INCREMENTAL | FULL}]
   [INTERVAL IntervalValue {MINUTE[S] | SECOND[S] | MILLESECOND[S] }]
   [STATE {ON|OFF|PAUSED}]
 ]
  FROM
   {[Owner.]TableName (
    {ColumnDefinition[,…]}
    [,PRIMARY KEY(ColumnName[,…])]
    [FOREIGN KEY(ColumnName[,…])
          REFERENCES RefTableName (ColumnName [,…])]
                  [ON DELETE CASCADE]
    [, {READONLY | PROPAGATE | NOT PROPAGATE}]
 [UNIQUE HASH ON (HashColumnName[,…]) PAGES=PrimaryPages]
 [WHERE ExternalSearchCondition]
 [AGING {LRU|
         USE ColumnName
             LIFETIME Num1 {MINUTE[S] |HOUR[S] |DAY[S]}
             [CYCLE Num2 {MINUTE[S] |HOUR[S] |DAY[S]}]
        }[ON|OFF]
 ]
} [,...];

CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH GLOBAL CACHE GROUP

グローバルな動的キャッシュ・グループを作成してキャッシュ・グリッド内のデータをキャッシュするには、次の構文を使用します。

CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH GLOBAL CACHE GROUP  [Owner.]GroupName
  FROM
   {[Owner.]TableName (
     {ColumnDefinition[,…]}
    [,PRIMARY KEY(ColumnName[,…])]
     [FOREIGN KEY(ColumnName [,…])
          REFERENCES RefTableName (ColumnName [,…])]
                         [ ON DELETE CASCADE ]
 UNIQUE HASH ON (HashColumnName[,…]) PAGES=PrimaryPages]
 [AGING {LRU|
     USE ColumnName
          LIFETIME Num1 {MINUTE[S] |HOUR[S] |DAY[S]}
         [CYCLE Num2 {MINUTE[S] |HOUR[S] |DAY[S]}]
     }[ON|OFF]
 ]
} [,...];

パラメータ

キャッシュ・グループ定義のFROMキーワードより前のパラメータは、次のとおりです。

パラメータ 説明
[Owner.]GroupName 新しいキャッシュ・グループに割り当てられる所有者および名前です。
[DYNAMIC] 指定すると、動的キャッシュ・グループが作成されます。
AUTOREFRESH AUTOREFRESHパラメータは、Oracle Databaseからキャッシュ・グループに自動的に変更を伝播します。 詳細は、「キャッシュ・グループのAUTOREFRESH」を参照してください。
MODE [INCREMENTAL | FULL] 自動リフレッシュ時に更新されるキャッシュ内の行を指定します。INCREMENTAL句が指定された場合、TimesTenは前回の伝播以降にOracleに加えられた変更のみをリフレッシュします。FULL句が指定された場合、TimesTenは自動リフレッシュのたびにキャッシュ内のすべての行を更新します。 デフォルトの自動リフレッシュ・モードはINCREMENTALです。
INTERVAL IntervalValue 自動リフレッシュを行う時間隔を分、秒またはミリ秒の単位で指定します。IntervalValueには、AUTOREFRESHを実行する頻度をMINUTES、SECONDSまたはMILLISECONDSの単位の整数値で指定します。 IntervalValueのデフォルト値は5分です。指定した時間隔でAUTOREFRESHを完了できない場合は、実行時に警告が生成され、現在の処理が終了するまで次回のAUTOREFRESHを待機します。待機キューが10に達すると、サポート・ログに通知メッセージが生成されます。
STATE [ON | OFF | PAUSED] キャッシュ・グループの作成時に自動リフレッシュをON、OFFまたはPAUSEDのいずれにするかを設定します。 この設定は、ALTER CACHE GROUP文を使用して後で変更できます。デフォルトでは、自動リフレッシュの状態はPAUSEDです。
FROM キャッシュ・グループに1つ以上の表定義を指定します。

FROMキーワード以降のすべての記述は、キャッシュ・グループがキャッシュするOracle表の定義で構成されています。各表定義の構文は、CREATE TABLE文と同様です。 ただし、キャッシュ・グループ表には、主キー制約が必要です。

表定義には、次のパラメータがあります。

パラメータ 説明
[Owner.]TableName 新しい表に割り当てる所有者および名前です。所有者名を指定しない場合は、新しい表の所有者名としてログイン名が使用されます。
ColumnDefinition 表の個々の列の名前、データ型およびNULL値可能かどうかを指定します。各表には、列が少なくとも1つ必要です。 詳細は、「列定義」を参照してください。
PRIMARY KEY (ColumnName[,…]) 表に主キーを指定します。 キャッシュ・グループには、主キー制約が必要です。 ColumnNameは、作成される表の主キー列の名前です。 主キーには最大16列を指定できます。1つの指定内でUNIQUEとともに指定することはできません。
FOREIGN KEY (ColumnName[,…]) 表に外部キーを指定します。 ColumnNameは、作成される表の外部キー列の名前です。FOREIGN KEYを参照してください。
REFERENCES RefTableName (ColumnName[,…]) 外部キーを関連付ける表を指定します。 RefTableNameは参照される表の名前で、ColumnNameはその表の参照される列の名前です。
[ON DELETE CASCADE] ON DELETE CASCADE参照アクションを有効にします。指定されている場合、参照先キーの値を含む行が親表から削除されると、依存する外部キーの値を持つ子表の行も削除されます。
READONLY キャッシュされた表に対する変更の禁止を指定します。
PROPAGATE|NOT PROPAGATE キャッシュされた表への変更が、コミット時に自動的に対応するOracle表に伝播されるかどうかを指定します。
UNIQUE HASH ON (HashColumnName) この表にハッシュ索引を作成することを指定します。 HashColumnNameには、この表のハッシュ・キーに含める列を指定します。ハッシュ索引に指定される列は、主キーの列と同じである必要があります。
PAGES=PrimaryPages 表の想定ページ数を指定します。 PrimaryPagesの数値に基づいて、ハッシュ索引用に作成されるハッシュ・バケットの数が決まります。最小値は1です。想定したページ数が少なすぎると、パフォーマンスが低下します。 詳細は、「CREATE TABLE」を参照してください。
WHERE ExternalSearchCondition WHERE句は、Oracleにより、キャッシュ・グループ表に対して評価されます。このWHERE句は、キャッシュ・グループに対するすべてのLOADとREFRESH処理に追加されます。他の表を直接参照することはできません。これはTimesTenおよびOracleの両方で解析されます。 『Oracle In-Memory Database Cacheユーザーズ・ガイド』のWHERE句の使用に関する説明を参照してください。
AGING LRU [ON | OFF] 指定する場合、ルート表にLRUエージング・ポリシーを定義します。LRUエージング・ポリシーはキャッシュ・グループのすべての表に適用します。LRUエージング・ポリシーでは、エージングのタイプ(LRU)、エージング状態(ONまたはOFF)およびLRUエージング属性を定義します。

エージング状態をONまたはOFFのいずれかに設定します。ONはエージング状態が有効であり、エージングが自動的に実行されることを示します。OFFはエージング状態が無効であり、エージングが自動的に実行されないことを示します。両方の場合、エージング・ポリシーが定義されます。デフォルトはONです。

動的キャッシュ・グループでは、LRUエージングはデフォルトでONに設定されます。 かわりに時間ベースのエージングを指定できます。

LRU属性はプロシージャttAgingLruConfigをコールして定義します。LRU属性はSQLレベルでは定義できません。

LRUエージングは、自動リフレッシュが設定されたキャッシュ・グループではサポートされません。

LRUエージングの詳細は、『Oracle In-Memory Database Cacheユーザーズ・ガイド』のキャッシュ・グループでのエージングの実装に関する説明を参照してください。

AGING USE ColumnName...[ON|OFF] 指定する場合、ルート表に時間ベースのエージング・ポリシーを定義します。時間ベースのエージング・ポリシーはキャッシュ・グループのすべての表に適用します。時間ベースのエージング・ポリシーでは、エージングのタイプ(時間ベース)、エージング状態(ONまたはOFF)および時間ベースのエージング属性を定義します。

エージング状態をONまたはOFFのいずれかに設定します。ONはエージング状態が有効であり、エージングが自動的に実行されることを示します。OFFはエージング状態が無効であり、エージングが自動的に実行されないことを示します。両方の場合、エージング・ポリシーが定義されます。デフォルトはONです。

時間ベースのエージング属性はSQLレベルで定義され、LIFETIME句およびCYCLE句で指定します。

時間ベース・エージングに使用する列の名前としてColumnNameを指定します。 列は、NOT NULLのTIMESTAMPデータ型またはDATEデータ型として定義します。この列の値がSYSDATEから差し引かれ、指定した単位(分、時間、日数)を使用して切り捨てられた後、LIFETIME値との比較が行われます。その結果がLIFETIME値より大きい場合、行はエージングの対象となります。

エージングに使用される列の値は、アプリケーションによって更新されます。この列の値が不明な行がある場合、その行がエージ・アウトされないようにするには、列に大きなデフォルト値を定義します(この列はNULLにはできません)。

時間ベースのエージングの詳細は、『Oracle In-Memory Database Cacheユーザーズ・ガイド』のキャッシュ・グループでのエージングの実装に関する説明を参照してください。

LIFETIME Num1 {MINUTE[S]|HOUR[S]DAY[S]} LIFETIMEは時間ベースのエージング属性で、必須の句です。

AGING USE ColumnName 句の後にLIFETIME句を指定します。

LIFETIME句には、データがキャッシュに保持されることが保証される時間を指定します。

Num1には、行がキャッシュに保持される時間の長さを、分、時間または日数で表す正の整定数を指定します。LIFETIME値を超えた行はエージ・アウト(表から削除)されます。

時間の単位の概念がサポートされています。時間の単位にDAYSを指定した場合、タイムスタンプの日付が同じ日になっているすべての行が同時にエージ・アウトされます。また、HOURSを時間の単位に指定した場合は、タイムスタンプ値の時間が同じ行が、すべて同時にエージ・アウトされます。LIFETIMEの3 DAYSは、LIFETIMEの72 HOURS(3×24)やLIFETIMEの432 MINUTES(3×24×60)とは異なります。

[CYCLE Num2 {MINUTE[S] |HOUR[S]|DAY[S]}] CYCLEは時間ベースのエージング属性で、オプションです。LIFETIME句の後にCYCLE句を指定します。

CYCLE句は、データが指定したLIFETIME値を超えているかどうか、その結果エージ・アウト(削除)する必要があるかどうかを確認するために、システムで行をチェックする頻度を指定します。

Num2には、正の整数を指定します。

CYCLE句を指定しない場合、デフォルト値は5分です。Num2に0を指定すると、エージングは継続され、エージング・スレッドがスリープ状態になることはありません。

エージング状態がOFFの場合、エージングは自動的に実行されず、CYCLE句は無視されます。


説明

キャッシュ・グループのAUTOREFRESH

AUTOREFRESHパラメータは、Oracle DatabaseからTimesTenキャッシュ・グループに自動的に変更を伝播します。 明示的にロードされるキャッシュ・グループの場合、削除、更新および挿入がOracle Databaseからキャッシュ・グループに自動的に伝播されます。 動的キャッシュ・グループの場合、削除と更新のみが伝播されます。 指定されたOracle表への挿入は動的キャッシュ・グループには伝播されません。 これらは、アプリケーションで参照されたときに、動的にIMDB Cacheにロードされます。 また、アプリケーションで明示的にロードすることもできます。

キャッシュ・グループでAUTOREFRESHを使用するには、キャッシュ・グループを作成する際にAUTOREFRESHを指定する必要があります。MODE、STATEおよびINTERVAL AUTOREFRESHの設定は、ALTER CACHE GROUPコマンドを使用することによって、キャッシュ・グループが作成された後で変更できます。キャッシュ・グループをAUTOREFRESHまたはPROPAGATEに指定した後は、これらの属性を変更することはできません。

TimesTenでは、FULL AUTOREFRESHまたはINCREMENTAL AUTOREFRESHがサポートされています。FULLモードでは、キャッシュ全体が定期的にアンロードされてから再ロードされます。 INCREMENTALモードでは、Oracle Databaseにトリガーがインストールされて変更の追跡が行われ、特定のOracle表で変更された行のみが定期的に更新されます。 自動リフレッシュの状態がPAUSEDになっている場合を除き、最初の増分リフレッシュは常に完全リフレッシュになります。デフォルトのモードはINCREMENTALです。

Oracle表のほとんどの行が変更されている場合は、FULL AUTOREFRESHがより有効です。変更が少ない場合は、INCREMENTAL AUTOREFRESHがより有効です。

TimesTenは、AUTOREFRESHを指定した文を含むトランザクションがコミットされたときに、AUTOREFRESH操作をスケジュールします。AUTOREFRESHをスケジュールする文は、次のとおりです。

AUTOREFRESHの頻度は、指定した時間隔によって決まります。

AUTOREFRESHのSTATEには、ON、OFFまたはPAUSEDが指定できます。デフォルトでは、自動リフレッシュの状態はPAUSEDです。

NOT PROPAGATE属性とAUTOREFRESH属性を同時に使用することはできません。

キャッシュ・グループでのエージング

キャッシュ・グリッド

キャッシュ・グリッド内のデータをキャッシュするには、動的なASYNCHRONOUS WRITETHROUGHグローバル・キャッシュ・グループを作成する必要があります。 このキャッシュ・グループを作成する前に、TimesTenデータベースをキャッシュ・グリッドと関連付けておく必要があります。 キャッシュ・グリッドおよびグローバル・キャッシュ・グループの作成と使用の詳細は、『Oracle In-Memory Database Cacheユーザーズ・ガイド』のキャッシュ・グリッドおよびグローバル・キャッシュ・グループの説明を参照してください。

READONLYキャッシュ・グループを作成します。

CREATE READONLY CACHE GROUP customerorders
AUTOREFRESH INTERVAL 10 MINUTES
FROM
customer (custid INT NOT NULL,
       name CHAR(100) NOT NULL,
       addr CHAR(100),
       zip INT,
       region CHAR(10),
       PRIMARY KEY(custid)),
ordertab (orderid INT NOT NULL,
       custid INT NOT NULL,
       PRIMARY KEY (orderid),
       FOREIGN KEY (custid) REFERENCES customer(custid));

ASYNCHROUS WRITETHROUGHキャッシュ・グループを作成します。

CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP cstomers
FROM
customer (custid INT NOT NULL,
       name CHAR(100) NOT NULL,
       addr CHAR(100),
       zip INT,
       PRIMARY KEY(custid));

SYNCHRONOUS WRITETHROUGHキャッシュ・グループを作成します。

CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP customers
FROM
customer (custid INT NOT NULL,
       name CHAR(100) NOT NULL,
       addr CHAR(100),
       zip INT,
       PRIMARY KEY(custid));

USERMANAGEDキャッシュ・グループを作成します。

CREATE USERMANAGED CACHE GROUP updateanywherecustomers
AUTOREFRESH
       MODE INCREMENTAL
       INTERVAL 30 SECONDS
       STATE ON
FROM
customer (custid INT NOT NULL,
       name CHAR(100) NOT NULL,
       addr CHAR(100),
       zip INT,
       PRIMARY KEY(custid),
       PROPAGATE);

時間ベースのエージングが指定されたキャッシュ・グループを作成します。 エージング用の列として、agetimestampを指定します。 LIFETIMEは2時間、CYCLEは30分を指定します。エージング状態は指定しないため、デフォルト設定(ON)が使用されます。

CREATE READONLY CACHE GROUP agingcachegroup
AUTOREFRESH
       MODE INCREMENTAL
       INTERVAL 5 MINUTES
       STATE PAUSED
FROM
customer (customerid NUMBER NOT NULL,
       agetimestamp TIMESTAMP NOT NULL,
       PRIMARY KEY (customerid))
       AGING USE agetimestamp LIFETIME 2 HOURS CYCLE 30 MINUTES;
Command> DESCRIBE customer;
Table USER.CUSTOMER:
  Columns:
   *CUSTOMERID                      NUMBER NOT NULL
    AGETIMESTAMP                    TIMESTAMP (6) NOT NULL
  AGING USE AgeTimestamp LIFETIME 2 HOURS CYCLE 30 MINUTES ON
1 table found.
(primary key columns are indicated with *)

Oracleで大文字と小文字が混在するデリミタ付き識別子の表名にシノニムを使用すると、大文字と小文字が混在する表名をTimesTenでキャッシュできます。最初に、大文字と小文字が混在するOracle表の名前をキャッシュしてみます。 「Could not find 'NameofTable' in Oracle」というエラーが表示されます。

Command> AUTOCOMMIT 0;
Command> PASSTHROUGH 3;
Command> CREATE TABLE "MixedCase" (col1 NUMBER PRIMARY KEY NOT NULL);
Command> INSERT INTO "MixedCase" VALUES (1);
1 row inserted.
Command> COMMIT;
Command> CREATE CACHE GROUP MixedCase1 from "MixedCase"
        (col1 NUMBER PRIMARY KEY NOT NULL);
 5140: Could not find SAMPLEUSER.MIXEDCASE in Oracle.  May not have privileges.
The command failed.

次に、シノニム"MIXEDCASE"を作成し、そのシノニムを表名として使用します。

Command> AUTOCOMMIT 0;
Command> PASSTHROUGH 3;
Command> CREATE SYNONYM "MIXEDCASE" FOR "MixedCase";
Command> COMMIT;
Command> CREATE CACHE GROUP MixedCase2 FROM "MIXEDCASE"
         (col1 NUMBER PRIMARY KEY NOT NULL);
Warning  5147: Cache group contains synonyms
Command> COMMIT;

読取り専用キャッシュ・グループまたはAUTOREFRESH属性を持つキャッシュ・グループでシノニムの名前を使用してみます。次のエラーが表示されます。

Command> AUTOCOMMIT 0;
Command> PASSTHROUGH 3;
Command> CREATE SYNONYM "MIXEDCASE_AUTO" FOR "MixedCase";
Command> COMMIT;
Command> CREATE READONLY CACHE GROUP MixedCase3 AUTOREFRESH MODE          INCREMENTAL INTERVAL 10 MINUTES FROM "MIXEDCASE_AUTO"
         (Col1 NUMBER PRIMARY KEY NOT NULL);
 5142: Autorefresh is not allowed on cache groups with Oracle synonyms
The command failed.

関連項目


「ALTER CACHE GROUP」
「ALTER TABLE」
「DROP CACHE GROUP」
「FLUSH CACHE GROUP」
「LOAD CACHE GROUP」
「UNLOAD CACHE GROUP」