3.2.1 デフォルトのキャッシュ・ポリシーのオーバーライド
通常は必要ありませんが、CELL_FLASH_CACHE
セグメント記憶域オプションを使用して、Exadataスマート・フラッシュ・キャッシュの自動キャッシング・ポリシーをオーバーライドできます。CELL_FLASH_CACHE
オプションは、通常の表と索引、パーティション表と索引、索引構成表など、様々なデータベース・オブジェクトのSQL CREATE
またはALTER
コマンドの一部としてSTORAGE
句に含めることができます。
次に例を示します:
SQL> CREATE TABLE t1 (c1 number, c2 varchar2(200)) STORAGE (CELL_FLASH_CACHE NONE);
SQL> ALTER TABLE t2 STORAGE (CELL_FLASH_CACHE KEEP);
CELL_FLASH_CACHE
オプションは、次の設定をサポートしています。
NONE
: この値により、Exadataスマート・フラッシュ・キャッシュは対応するセグメントをキャッシュしなくなります。周辺のデータベース・セグメントでこの設定を使用すると、より重要でアクセス頻度の高いデータベース・セグメントで、より多くのキャッシュ領域を使用できます。DEFAULT
: この値を指定すると、データベース・セグメントは、Exadataスマート・フラッシュ・キャッシュのデフォルトのLRU (最低使用頻度)アルゴリズムを使用してキャッシュされます。この値は、CELL_FLASH_CACHE
のデフォルト設定です。-
KEEP
: この値は、Exadataスマート・フラッシュ・キャッシュのセグメント優先度を高くします。この設定を使用すると、キャッシュ内の対応するセグメントのデータが保持される可能性を高めることができます。Oracle Exadata System Softwareリリース24.1.0以降、Oracle Database 23aiとの組合せでは、この設定のセグメントはExadataスマート・フラッシュ・キャッシュに自動的に移入されます。以前は、セグメントの読取り時にセグメント・データが移入されていました。
CELL_FLASH_CACHE
セグメント・ストレージ・オプションは、パーティション化されたセグメントのパーティションごとに個別に設定できます。これは、予測可能な使用パターンに基づいて異なるパーティションのキャッシュ優先度に影響を与える場合に、特に役立ちます。CELL_FLASH_CACHE
セグメント・ストレージ・オプションをパーティションに設定するときに、DEFERRED INVALIDATION
句を追加できます。次に例を示します:
SQL> ALTER TABLE ptable MODIFY PARTITION p1 STORAGE (CELL_FLASH_CACHE KEEP) DEFERRED INVALIDATION;
このオプションを使用すると、依存カーソルをすぐに無効化することなく、セグメント・ストレージ・オプションを動的に変更できます。このオプションには、Oracle Databaseバージョン19.15とOracle Databaseバージョン21.6以降のリリースに含まれるバグ33456703のパッチが含まれているOracle Databaseソフトウェアが必要です。
例3-1 パーティションに対するCELL_FLASH_CACHEの設定
この例は、CREATE TABLE
コマンドで複数のパーティションに個別にCELL_FLASH_CACHE
を設定する方法を示しています。
CREATE TABLE ptable (c1 number, c2 clob) TABLESPACE TBS_1
PARTITION BY RANGE(c1) ( PARTITION p1 VALUES LESS THAN (100)
TABLESPACE TBS_2 STORAGE (CELL_FLASH_CACHE DEFAULT),
PARTITION p2 VALUES LESS THAN (200) TABLESPACE TBS_3
STORAGE (CELL_FLASH_CACHE KEEP));
例3-2 LOBセグメントに対するCELL_FLASH_CACHEの設定
この例は、CREATE TABLE
コマンドでLOBセグメントにCELL_FLASH_CACHE
を設定する方法を示しています。
CREATE TABLE tkbcsrbc (c1 number, l1 clob)
lob (l1) STORE AS securefile
(cache nologging STORAGE (CELL_FLASH_CACHE NONE))
PCTFREE 0 TABLESPACE tbs_93 STORAGE
(initial 128K next 128K pctincrease 0);
例3-3 CELL_FLASH_CACHEと組み合せたALTER TABLEの使用
STORAGE句の変更が許可されるオブジェクトの場合、これらの例に示すように、CELL_FLASH_CACHE
と組み合せてALTER
コマンドを使用できます。
ALTER TABLE tkbcsrbc STORAGE(CELL_FLASH_CACHE KEEP);
ALTER TABLE tkbcsrbc MODIFY LOB (l1) (STORAGE (CELL_FLASH_CACHE DEFAULT));
例3-4 ビューを使用したCELL_FLASH_CACHEストレージ句の問合せ
CELL_FLASH_CACHE
STORAGE句属性は、関連するオブジェクトに基づいたデータベース・ビューを使用して問い合せることができます。
SELECT TABLESPACE_NAME, TABLE_NAME, CELL_FLASH_CACHE FROM user_tables WHERE table_name='TKBCSRBC';
SELECT CELL_FLASH_CACHE FROM ALL_INDEXES WHERE index_name='TKBCIDX';
親トピック: Exadataスマート・フラッシュ・キャッシュの管理