1.152 INMEMORY_OPTIMIZED_ARITHMETIC
INMEMORY_OPTIMIZED_ARITHMETIC
は、QUERY LOW
で圧縮されたインメモリー表内のNUMBER
データ型を、共通指数によって増減される固定幅のネイティブ整数としてエンコードします。
特性 | 説明 |
---|---|
パラメータ・タイプ |
文字列 |
構文 |
|
デフォルト値 |
|
変更可能 |
|
PDBで変更可能 |
はい |
基本 |
いいえ |
Oracle RAC |
インスタンスごとに異なる値を指定可能。 |
算術演算はハードウェアでネイティブに実行できないため、Oracle Database NUMBER
形式により、問合せの実行時に多大なパフォーマンス・オーバーヘッドが発生する可能性があります。
INMEMORY_OPTIMIZED_ARITHMETIC
をENABLE
に設定すると、QUERY LOW
で圧縮された表の場合、NUMBER
列は共通指数によって増減される固定幅のネイティブ整数としてエンコードされます。このインメモリー最適化数値形式を使用すると、SIMDハードウェアを使用して高速な計算が可能になります。SIMDベクトル処理を使用することで、算術演算、簡単な集計およびグループ別集計を大幅に改善できます。
問合せ処理エンジン内のすべての行ソースで、インメモリー最適化数値形式がサポートされているわけではありません。このため、IM列ストアでは、従来のOracle Database NUMBER
データ型とインメモリー最適化数値型の両方を格納する必要があります。つまり、分析問合せのパフォーマンスの高速化によって領域オーバーヘッドの増加というコストが発生ます。
INMEMORY_OPTIMIZED_ARITHMETIC
をDISABLE
(デフォルト)に設定すると、データベースでは最適化されたエンコーディングが使用されません。
INMEMORY_OPTIMIZED_ARITHMETIC
をENABLE
に設定した後にDISABLE
に設定した場合、既存のIMCUの最適化数値形式はすぐには削除されません。かわりに、IM列ストアにIMCUが再移入されるため、新しいIMCUでは最適化されたエンコーディングが使用されません。
関連項目:
INMEMORY_OPTIMIZED_ARITHMETIC
が有効になっているときのパフォーマンスの向上および領域オーバーヘッドの増加の詳細は、『Oracle Database In-Memoryガイド』を参照してください