Oracle Database In-Memoryガイドのこのリリースでの変更点
「はじめに」の内容は次のとおりです。
Oracle Databaseリリース18c, バージョン18.1の変更点
Oracle Databaseリリース18c, バージョン18.1向けOracle Database In-Memoryガイドには、次のような変更点があります。
新機能
今回のリリースの主な新機能は次のとおりです。
-
自動インメモリー
この機能は、セグメントおよび列の使用状況の統計を使用して、IM列ストアの内容を自動的に管理します。IM列ストアがいっぱいであるために移入ジョブが失敗した場合、自動インメモリーは非アクティブなセグメントを除去して、アクティブなセグメントのためのスペースを作成します。
「自動インメモリーの構成」を参照してください。
-
In-Memory動的スキャン
IM動的スキャンは、軽量プロセス・スレッドを使用して表スキャンを自動的かつ透過的にパラレル化します。Oracle Resource Managerは、CPUリソースがアイドル状態であり問合せを高速化するために利用できることを認識したときに、これらのスレッドを割り当てます。
「In-Memory動的スキャン」を参照してください。
-
IM式ウィンドウの取得
任意の長さの式取得ウィンドウを定義できます。これにより、このウィンドウ内で発生する式のみがインメモリーのマテリアライズ用に考慮されます。このメカニズムは、ワークロード全体で代表的な小さい間隔がわかっている場合に特に便利ですたとえば、取引時間帯の間に証券会社が一連の式を収集し、IM列ストアでそれらをマテリアライズして、ワークロード全体の将来の問合せ処理を高速化できます。
「式の取得間隔」を参照してください。
-
外部表のインメモリー・サポート
外部表をIM列ストアに移入できます。この機能は、内部データと外部データを組み合せた分析問合せに役立ちます。
インメモリー外部表と、外部表の作成および移入: 例を参照してください。
-
インメモリー最適化算術
QUERY LOW
で表を圧縮する場合、NUMBER
列は、ハードウェアでのネイティブ計算が有効になる最適化された形式を使用してエンコードされます。最適化されたこの形式を使用する集計および算術演算のSIMDベクター処理により、パフォーマンスが大幅に向上します。この機能は、INMEMORY_OPTIMIZED_ARITHMETIC
をENABLE
に設定すると有効になります。「インメモリー算術の最適化」を参照してください。
-
ラージ・オブジェクト(LOB)のパフォーマンスの向上
以前のリリースでは、LOBとLOBポインタがIM列ストアに移入されましたが、データベースはバッファ・キャッシュを使用して問合せを満たしました。このリリースでは、範囲述語をスカラー列に適用するインメモリー問合せ、またはSQL演算子をLOB列に適用するインメモリー問合せで、SIMDベクター処理による利益が得られます。
IM列ストアは、IMCU内の4KB未満のLOBであるインラインLOBに対して連続した記憶域を提供します。アウトラインLOBの場合、IM列ストアは40バイトのLOBロケータのみを格納します。前述のルールには、例外が1つあります。IMEUは、LOBデータ型として定義されたJSON列に対して最大32KBの連続した記憶域を割り当てることができます。IMEUは、これらの列をOSON (バイナリJSON)形式で格納します。
「CPUアーキテクチャ: SIMDベクター処理」を参照してください。
-
1つの列にあるインメモリー結合グループ
次の構文を使用して、単一の列に自己結合の結合グループを作成できます。
CREATE INMEMORY JOIN GROUP jg_name(table_name(column_name))
「結合グループによる結合の最適化」を参照してください。
Oracle Database 12cリリース2 (12.2.0.1)での変更点
Oracle Database 12cリリース2 (12.2.0.1)向けOracle Database In-Memoryガイドには、次のような変更点があります。
新機能
今回のリリースの主な新機能は次のとおりです。
-
インメモリー列ストア(IM列ストア)の動的サイズ変更
データベースを再度開くことなく、インメモリー領域のサイズを動的に拡大できるようになりました。
「IM列ストアのサイズの動的な増加」を参照してください。
-
インメモリー式(IM式)
Oracle Databaseにより、IM列ストアへの移入の候補となる、頻繁に使用される(ホットな)式が自動的に特定されます。式の候補としては、
(monthly_sales*12)/52
が考えられます。IM式は、計算集約的な式を使用し、大規模なデータ・セットにアクセスする分析型問合せのパフォーマンスを大幅に向上させます。「インメモリー式による問合せの最適化」を参照してください。
-
インメモリー仮想列(IM仮想列)
IM仮想列により、IM列ストアで、表内の一部またはすべての仮想列をマテリアライズできます。
「インメモリー表に対する列の有効化および無効化」を参照してください。
-
IMファスト・スタート
IMファスト・スタートでは、IMCUをディスクに直接格納することで、IM列ストアへのデータベース・オブジェクトの移入が最適化されます。
「IM列ストアのIMファスト・スタートの管理」を参照してください。
-
サービスに対するオブジェクトレベルのサポート
個々のオブジェクトの場合、
INMEMORY ... DISTRIBUTE
句には、このサービスを実行できるデータベース・インスタンスへの移入を制限するFOR SERVICE
副句があります。たとえば、INMEMORY
オブジェクトをインスタンス1のみ、インスタンス2のみ、または両方のインスタンス内のIM列ストアに移入するよう構成できます。「オブジェクトレベルのサービス制御」を参照してください。
-
スタンバイ・データベース上のIM列ストア
Oracle Active Data Guardスタンバイ・データベース上でIM列ストアを有効にできます。アプリケーションで使用できるインメモリー列ストアのサイズを効率的に2倍にして、プライマリおよびスタンバイ・データベース上で、インメモリー列ストア内に完全に異なるデータのセットを移入できます。
「Oracle Active Data GuardでのIM列ストアのデプロイ」を参照してください。
-
IM列ストアでのADOのサポート
自動データ最適化(ADO)ポリシーを使用して、表、パーティションまたはサブパーティションなどのオブジェクトを、ヒート・マップ統計に基づいてIM列ストアから除去できます。正常なポリシー完了により、指定されたオブジェクトに対して
NO INMEMORY
が設定されます。「IM列ストアに対するADOの有効化」を参照してください。
-
結合グループ
結合グループは、効果的に結合できる2つの列をリストするユーザー作成オブジェクトです。特定の問合せで、結合グループにより、データベースで列値を解凍およびハッシュするパフォーマンス上のオーバーヘッドを排除できます。結合グループには、IM列ストアが必要となります。
「結合グループによる結合の最適化」を参照してください。