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オプションの使用

INMEMORYCELLMEMORYの両方を同じ表で使用できます。次に例を示します:

CREATE TABLE t (c1 NUMBER) INMEMORY CELLMEMORY MEMCOMPRESS FOR QUERY;

メモリーにロードされそうにない、優先順位の低い表がある場合に、これら2つのオプションを指定すると便利です。また、CELLMEMORYを指定することでも、列指向の性能を得られます。