※本記事は、Andy Rivenes による”New Memory Speed Hybrid Columnar Compression in Oracle AI Database 26ai” を翻訳したものです。


Oracle AI Database 26ai の新機能の一つが、Memory Speed Hybrid Columnar Compression、すなわち Memspeed HCC の導入です。これは、Hybrid Columnar Compression(HCC)のバージョン 2.0 と考えることができます。Memspeed HCC の主な利点の一つは、In-Memory Column Store や Exadata Smart Flash Cache の CELLMEMORY で使用されているものと同じ列指向フォーマットを利用している点です。Memspeed HCC は、従来の HCC と比べて、より大きな Compression Unit(CU)サイズと新しいフォーマットを採用しています。この新しいフォーマットは、In-Memory フォーマットをより効果的に活用し、SIMD 処理と辞書エンコーディングを強化することで、圧縮率、フィルタ述語のプルーニング、および結合処理を大幅に改善します。その結果、データがディスク上にある場合のクエリ性能が向上し、さらに Exadata Smart Flash Cache への CELLMEMORY の展開も大幅に高速化されます。

従来の HCC と比べると、新しい Memspeed HCC は、非常に大規模なデータ量を扱いつつも、クエリ実行やデータロードのワークロードが依然として活発な環境において、総合的に見てより優れた選択肢です。Memspeed HCC は、Oracle AI Database 26ai 23.26.0 以降の Exadata プラットフォームで利用可能であり、Memspeed HCC セグメントに対する Smart Scan をサポートするには、Exadata System Software 25.x の 10 月アップデートが必要です。

前述のとおり、Memspeed HCC は新しい列指向ストレージ形式を採用しているため、従来の HCC とは互換性がありません。つまり、Memspeed HCC を有効にするにはデータ移行が必要になります。既存データは、この新しい形式で定義されたセグメントへ移動しなければなりません。もちろん、新しいデータについては、Memspeed HCC 用に定義されたセグメントへ直接挿入できます。

既存データについては、DBMS_COMPRESSION を使用して、変換対象データの新しい圧縮率を見積もることができます。ALTER TABLE コマンドを使用すると、セグメントに対して新規行用に Memspeed HCC を指定できます。また、ALTER TABLE MOVE や DBMS_REDEFINITION を使用して、既存データを Memspeed HCC 形式に再圧縮することもサポートされています。

これは新しい形式であるため、この機能に関連する新しい構文も用意されています。この構文は、従来の HCC 構文に追加されるものです。たとえば次のようになります。

COLUMN STORE COMPRESS FOR MEMSPEED {QUERY|QUERY LOW|QUERY HIGH|ARCHIVE}

QUERY は QUERY HIGH と同等であり、クエリ性能の観点で最適なレベルであるため、これがデフォルトです。QUERY LOW は、かなりのトランザクション処理を含む混在ワークロードにおいて最もバランスがよく、圧縮率をやや低くすることで、DML および fetch-by-rowid 操作の性能向上を実現します。

要約すると、従来の HCC ではなく Memspeed HCC を使用する利点は 3 つあります。第一に、クエリに関しては、従来の HCC 形式と比べて最大 2 倍高速な性能、さらに CPU ボトルネックとなるテーブルスキャンでは最大 6 倍高速な性能が期待できます。これは、Memspeed HCC 形式において列指向処理技術が大幅に向上しているためです。第二の大きな利点はデータロードです。Memspeed HCC 形式へのデータロードは、ARCHIVE 圧縮レベルでは最大 2 倍高速になる可能性があります。このロード性能の向上は、高圧縮の列指向ロードに対する空間管理がより効率的になっていることによるものです。そして第三の利点は、CELLMEMORY の展開がより高速になることであり、これによってクエリは新しいフラッシュキャッシュ形式の恩恵をより早く受けられるようになります。初期データロード、データ移動、キャッシュ無効化は、高速な展開が有効となる代表的なシナリオの一部です。