Oracle 20c : Database In-Memory Base Level included on Enterprise Edition

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.


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.


This task assumes that the following:

  • The CDB is open.
  • The COMPATIBLE initialization parameter is set to 12.1.0 or higher.
  • The INMEMORY_SIZE initialization parameter is set to 0 (default).
  • You want to use the Database In-Memory Base Level.

To enable the IM column store:

  1. In SQL*Plus or SQL Developer, log in to the CDB root as a user with administrator privileges.
  2. Set the INMEMORY_SIZE initialization parameter to a nonzero value.The minimum setting is 100M. When you set this initialization parameter in a server parameter file (SPFILE) using the ALTER SYSTEM statement, you must specify SCOPE=SPFILE. For example, the following statement sets the In-Memory Area size to 16 GB:
  • For the Database In-Memory Base Level, set the INMEMORY_FORCE initialization parameter to BASE_LEVEL.For example, the following statement specifies the Base Level:
  • ALTER SYSTEM SET INMEMORY_FORCE=BASE_LEVEL SCOPE=SPFILE; You cannot set INMEMORY_FORCE=BASE_LEVEL at 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:


After the IM column store is enabled, you can increase its size dynamically without shutting down and reopening the CDB.

Leave a Reply

Your email address will not be published. Required fields are marked *