This preface contains:
Changes in Oracle Database Release 18c, Version 18.1
Oracle Database In-Memory Guide for Oracle Database release 18c, version 18.1 has the following changes.
The following major features are new in this release.
This feature uses segment and column usage statistics to manage the contents of the IM column store automatically. If a populate job fails because the IM column store is full, then Automatic In-Memory evicts inactive segments to make room for active segments.
In-Memory Dynamic Scans
IM dynamic scans automatically and transparently parallelize table scans by using lightweight process threads. Oracle Resource Manager allocates these threads when it perceives that CPU resources are idle and can be leveraged to speed up the query.
See "In-Memory Dynamic Scans".
IM expressions window capture
You can define an expression capture window of an arbitrary length, which ensures that only the expressions occurring within this window are considered for In-Memory materialization. This mechanism is especially useful when you know of a small interval that is representative of the entire workload. For example, during the trading window, a brokerage firm can gather the set of expressions, and materialize them in the IM column store to speed-up future query processing for the entire workload.
See "Expression Capture Interval".
In-Memory support for external tables
You can populate external tables into the IM column store. This feature is useful for analytical queries that combine internal and external data.
In-Memory Optimized Arithmetic
For tables compressed with
NUMBERcolumns are encoded using an optimized format that enables native calculations in hardware. SIMD vector processing of aggregations and arithmetic operations that use this format can achieve significant performance gains. The feature is enabled when
INMEMORY_OPTIMIZED_ARITHMETICis set to
Enhanced performance for Large Objects (LOBs)
In previous releases, although LOBs and LOB pointers were populated in the IM column store, the database satisfied queries by using the buffer cache. In this release, In-Memory queries that apply range predicates to scalar columns or SQL operators to LOB columns benefit from SIMD vector processing.
The IM column store provides contiguous storage for inline LOBs, which are LOBs less than 4 KB, within the IMCUs. For out-of-line LOBs, the IM column store only stores the LOB locator, which is 40 byes. There is one exception to the preceding rule. An IMEU can allocate up to 32 KB of contiguous storage for JSON columns defined as a LOB data type. The IMEU stores these columns in the OSON (binary JSON) format.
In-Memory join group on one column
You can use the following syntax to create a join group for a self-join on a single column:
CREATE INMEMORY JOIN GROUP jg_name(table_name(column_name)).
Changes in Oracle Database 12c Release 2 (220.127.116.11)
Oracle Database In-Memory Guide for Oracle Database 12c Release 2 (18.104.22.168) has the following changes.
The following major features are new in this release:
In-Memory Column Store (IM column store) dynamic resizing
You can now dynamically increase the size of the In-Memory Area without reopening the database.
In-Memory Expressions (IM expressions)
Oracle Database automatically identifies frequently used (“hot”) expressions that are candidates for population in the IM column store. A candidate expression might be
(monthly_sales*12)/52. IM expressions can greatly improve the performance of analytic queries that use computationally intensive expressions and access large data sets.
In-Memory virtual columns (IM virtual columns)
IM virtual columns enable the IM column store to materialize some or all virtual columns in a table.
IM FastStart optimizes the population of database objects in the IM column store by storing IMCUs directly on disk.
Object-level support for services
For an individual object, the
INMEMORY ... DISTRIBUTEclause has a
FOR SERVICEsubclause that limits population to the database instance where this service can run. For example, you can configure an
INMEMORYobject to be populated in the IM column store on instance 1 only, or on instance 2 only, or in both instances.
IM column store on a standby database
You can enable an IM column store in an Oracle Active Data Guard standby database. You can populate a completely different set of data in the in-memory column store on the primary and standby databases, effectively doubling the size of the in-memory column store that is available to the application.
ADO support for the IM column store
You can use Automatic Data Optimization (ADO) policies to evict objects such as tables, partitions, or subpartitions from the IM column store based on Heat Map statistics. Successful policy completion results in setting
NO INMEMORYfor the specified object.
A join group is a user-created object that lists two columns that can be meaningfully joined. In certain queries, join groups enable the database to eliminate the performance overhead of decompressing and hashing column values. Join groups require an IM column store.