3.2.2 インメモリー列指向キャッシングの管理
列キャッシュは、データを列形式で格納するExadataスマート・フラッシュ・キャッシュのセクションです。Oracle Databaseから指示された場合、Exadataは列キャッシュの一部を自動的に使用して、Oracle Database In-Memory形式でデータを保持します。この拡張機能を使用するためにExadataで必要な構成は何もありません。
この機能は、Oracle Database In-Memoryオプションのライセンスを所有している場合に使用可能です。この機能を有効にするには、次のいずれかのデータベース・インスタンス・パラメータを使用します。
-
INMEMORY_SIZE
データベース・インスタンス・パラメータをゼロより大きい値に設定します。 -
Oracle Databaseバージョン19.8.0.0.200714以降、
INMEMORY_FORCE=cellmemory_level
を設定できます。このオプションを使用すると、データベース・インスタンスで専用のインメモリー・キャッシュを使用せずに、Exadataスマート・フラッシュ・キャッシュでインメモリー列指向キャッシングを使用できます。
CELLMEMORY
セグメント・オプションを使用して、Exadataスマート・フラッシュ・キャッシュのインメモリー列指向キャッシングのデフォルトの動作をオーバーライドできます。
SQL> ALTER TABLE table_name [ [ NO ] CELLMEMORY [ MEMCOMPRESS FOR [ QUERY | CAPACITY ] [ LOW | HIGH ] ]
オプションおよび句 | 使用方法の説明 |
---|---|
NO CELLMEMORY |
表が12.1.0.2の列指向のフラッシュ・キャッシュ形式から12.2のDatabase In-Memory形式への書換え対象外であることを示します。 |
CELLMEMORY およびCELLMEMORY MEMCOMPRESS FOR CAPACITY |
表をデフォルトのOracle Database 12.2 In-Memoryの形式でキャッシュできます。以前に指定したNO CELLMEMORY 文を取り消すか、指定した圧縮レベルを変更する場合のみ、この句を使用する必要があります。
|
CELLMEMORY MEMCOMPRESS FOR QUERY |
このオプションは、MEMCOMPRESS FOR CAPACITY が指定された場合、インメモリー列ストアのデータをそれを下回るように圧縮する必要があることを示します。このオプションにより、問合せ時のパフォーマンスが向上しますが、約2倍のフラッシュ領域が必要です。
|
LOW およびHIGH |
現時点では実装されていません。 |
例3-5 同じ表でのCELLMEMORYおよびINMEMORYオプションの使用
INMEMORY
とCELLMEMORY
の両方を同じ表で使用できます。次に例を示します:
CREATE TABLE t (c1 NUMBER) INMEMORY CELLMEMORY MEMCOMPRESS FOR QUERY;
メモリーにロードされそうにない、優先順位の低い表がある場合に、これら2つのオプションを指定すると便利です。また、CELLMEMORY
を指定することでも、列指向の性能を得られます。
親トピック: Exadataスマート・フラッシュ・キャッシュの管理