1.153 INMEMORY_OPTIMIZED_ARITHMETIC
INMEMORY_OPTIMIZED_ARITHMETIC encodes the NUMBER data type in in-memory tables compressed with QUERY LOW as a fixed-width native integer scaled by a common exponent.
| Property | Description |
|---|---|
|
Parameter type |
String |
|
Syntax |
|
|
Default value |
|
|
Modifiable |
|
|
Modifiable in a PDB |
Yes |
|
Basic |
No |
|
Oracle RAC |
Different values can be specified on different instances. |
The Oracle Database NUMBER format can incur a significant performance overhead when executing queries because arithmetic operations cannot be performed natively in hardware.
When INMEMORY_OPTIMIZED_ARITHMETIC is set to ENABLE, for tables compressed with QUERY LOW, NUMBER columns are encoded as a fixed-width native integer scaled by a common exponent. This In-Memory optimized number format enables fast calculations using SIMD hardware. By using SIMD vector processing, arithmetic operations, simple aggregations, and group-by aggregations can benefit significantly.
Not all row sources in the query processing engine have support for the In-Memory optimized number format. Therefore, the IM column store must store both the traditional Oracle Database NUMBER data type and the In-Memory optimized number type. This means that the acceleration in analytic query performance comes at a cost of increased space overhead.
When INMEMORY_OPTIMIZED_ARITHMETIC is set to DISABLE (the default), the database does not use the optimized encoding.
If INMEMORY_OPTIMIZED_ARITHMETIC is set to ENABLE and then to DISABLE, the optimized number format for existing IMCUs is not dropped immediately. Instead, as the IM column store repopulates IMCUs, the new IMCUs do not use the optimized encoding.
See Also:
Oracle Database In-Memory Guide for details about the improved performance and increased space overhead when INMEMORY_OPTIMIZED_ARITHMETIC is enabled