Database In-Memory is an option to Enterprise Edition. Database In-Memory now has a new “Base Level” feature. This allows the use of In-Memory with up to a 16GB column store without triggering any license tracking.
The feature allows you to use Database In-Memory without having to license the option. The column store is limited to 16GB when using the Base Level. This helps to show the value of Database In-Memory without having to worry about licensing issues.
How to enable the IM Column Store for a CDB or PDB
Before tables or materialized views can be populated into the IM column store, you must enable the IM column store.
In a CDB, the INMEMORY_SIZE setting in the CDB root determines the overall size of the IM column store. By default, all PDBs have access to the IM column store.
Note:
For the Database In-Memory Base Level, the INMEMORY_SIZE size at the CDB level must be less than or equal to 16G.
Within an individual PDB, you can limit access to the shared In-Memory Area by setting INMEMORY_SIZE to a different value. For example, in a CDB with 100 PDBs, you could set INMEMORY_SIZE to 16G at the CDB level, and then set INMEMORY_SIZE to 10G in one PDB, to 6G in a second PDB, and to 0 in the remaining PDBs.
Prerequisites
This task assumes that the following:
- The CDB is open.
- The
COMPATIBLEinitialization parameter is set to12.1.0or higher. - The
INMEMORY_SIZEinitialization parameter is set to0(default). - You want to use the Database In-Memory Base Level.
To enable the IM column store:
- In SQL*Plus or SQL Developer, log in to the CDB root as a user with administrator privileges.
- Set the
INMEMORY_SIZEinitialization parameter to a nonzero value.The minimum setting is100M. When you set this initialization parameter in a server parameter file (SPFILE) using theALTER SYSTEMstatement, you must specifySCOPE=SPFILE. For example, the following statement sets the In-Memory Area size to 16 GB:
ALTER SYSTEM SET INMEMORY_SIZE = 16G SCOPE=SPFILE;- For the Database In-Memory Base Level, set the
INMEMORY_FORCEinitialization parameter toBASE_LEVEL.For example, the following statement specifies the Base Level: ALTER SYSTEM SET INMEMORY_FORCE=BASE_LEVEL SCOPE=SPFILE;You cannot setINMEMORY_FORCE=BASE_LEVELat the PDB level. Also, you cannot set this parameter dynamically.- Shut down the CDB, and then reopen it.You must reopen the CDB to initialize the IM column store in the SGA.
- Optionally, check the amount of memory currently allocated for the IM column store:
SHOW PARAMETER INMEMORY_SIZE
Note:
After the IM column store is enabled, you can increase its size dynamically without shutting down and reopening the CDB.