Oracle Database Compliance / Database Options

Oracle In-Memory Option Licensing & Hidden Triggers

📅 Last updated: June 2026 ⏱ 14 min read 🏷 In-Memory / Database Options / Audit Risk / Compliance

The Oracle In-Memory option is one of the easiest paid options to switch on by accident and one of the hardest to argue your way out of. A DBA testing query performance sets a single initialization parameter — INMEMORY_SIZE — and the database silently allocates an In-Memory Column Store. That one parameter, set above zero, is enough to create a back-license claim across every processor running the database. Oracle's LMS audit scripts read the parameter and the feature-usage history in seconds. This guide explains exactly what triggers the Oracle In-Memory option license, how Oracle detects it, what it costs, and how to defend or right-size the exposure.

Get an In-Memory Exposure Assessment → Compliance Review Service
$23K In-Memory List Price Per Processor Per Year
> 0 INMEMORY_SIZE Value That Triggers the License
3–5× Typical Back-License Multiplier Applied by Oracle

Short answer: Oracle Database In-Memory is a separately licensed Enterprise Edition option that triggers the moment the INMEMORY_SIZE parameter is set above zero — even if no table is ever populated into memory. It is licensed per processor on the same footprint as the database, so a 32-core Intel server means 16 processor licenses, roughly $368,000 at 2026 list price.

What Is the Oracle In-Memory Option?

Short answer: Oracle Database In-Memory is a separately licensed Enterprise Edition option that maintains a columnar copy of tables in memory — the In-Memory Column Store — to accelerate analytic queries. It is not part of the base Enterprise Edition license, and using it requires the option on every processor running the database.

Oracle Database In-Memory, introduced in Oracle Database 12.1.0.2, stores selected tables, partitions, and materialized views in a compressed columnar format in a dedicated region of the System Global Area (SGA) called the In-Memory Column Store. Queries that scan large volumes of data run dramatically faster against the columnar copy, because the engine can skip irrelevant columns and use SIMD vector processing. It is a performance option aimed at analytics and reporting workloads running on the same database as transactional data.

The licensing trap is structural. Unlike a feature that requires a deliberate, visible action, In-Memory is armed by a single initialization parameter. A DBA evaluating whether In-Memory would help a slow report sets INMEMORY_SIZE, restarts the instance, and the column store is allocated. Nothing warns them that the option is unlicensed, and the database does not refuse to start. Oracle's playbook relies on this: the easier an option is to enable without thinking, the larger the eventual back-license claim.

The parameter is the trigger, not the usage: You do not have to populate a single table into the column store to owe the license. Setting INMEMORY_SIZE above zero is recorded as feature usage in its own right, and Oracle treats the allocation as use of the option.

What Triggers the Oracle In-Memory Option License?

Short answer: The In-Memory option license triggers when INMEMORY_SIZE is set above zero, when any object is given the INMEMORY attribute, or when In-Memory-specific features such as In-Memory aggregation or expressions are used. The parameter setting alone is sufficient, regardless of whether data is populated.

The option is licensed per processor on the same metric and footprint as the underlying Enterprise Edition database. The following actions each create a license requirement, and several of them happen without any explicit decision to "use In-Memory":

  • Setting INMEMORY_SIZE above zero: The single most common trigger. Allocating the column store is recorded as feature usage even with no objects marked INMEMORY.
  • Marking an object INMEMORY: Using ALTER TABLE ... INMEMORY on a table, partition, or materialized view triggers the option independently of the parameter at the segment level.
  • In-Memory aggregation (VECTOR GROUP BY): Queries that invoke the In-Memory aggregation optimization use the option.
  • In-Memory expressions and virtual columns: Materializing computed expressions into the column store is option usage.
  • In-Memory on Active Data Guard standby: Allocating a column store on a standby database requires the In-Memory option on the standby's processors, in addition to the Active Data Guard option.

Licensing follows the Oracle Core Factor Table: physical cores multiplied by the applicable core factor (typically 0.5 on x86) give the processor count to license. There is no minimum size threshold above the Base Level and no grace period. Our Oracle compliance review measures which databases have a non-zero INMEMORY_SIZE before Oracle's LMS team does.

Free Weekly Briefing

Oracle Licensing Intelligence — In Your Inbox

Audit alerts, contract renewal tactics, database option traps and negotiation intelligence from former Oracle insiders. Corporate email required.

2,000+ enterprise Oracle stakeholders. Unsubscribe anytime. No personal emails.

Is the 16GB In-Memory Base Level Really Free?

Short answer: Partly. From Oracle Database 19c, a Base Level permits up to 16GB of In-Memory Column Store without the option license — but only if INMEMORY_FORCE is set to BASE_LEVEL. If that guardrail is not configured and INMEMORY_SIZE exceeds zero, full option licensing applies, and the Base Level is not available on Engineered Systems.

Oracle introduced the In-Memory Base Level in 19c to let customers try In-Memory at small scale without buying the option. The Base Level is genuinely free, but it comes with strict guardrails that are easy to miss. INMEMORY_FORCE must be set to BASE_LEVEL, and INMEMORY_SIZE must not exceed 16GB. If a DBA sets INMEMORY_SIZE to, say, 32GB without setting INMEMORY_FORCE to BASE_LEVEL, the database is using the full option and the Base Level protection does not apply. The 16GB limit is also per-instance, and the Base Level is explicitly excluded on Oracle Engineered Systems such as Exadata.

In audit practice, the Base Level is both a defense and a trap. It is a defense where a customer genuinely configured INMEMORY_FORCE = BASE_LEVEL and stayed under 16GB — in that case no option license is owed and the claim should be rejected. It is a trap where a customer assumed "under 16GB means free" without setting the parameter, because Oracle will treat the unguarded allocation as full option usage. Establishing exactly how the parameters were configured is central to defending an In-Memory claim — see our Oracle audit defense guide for how parameter-level evidence is used.

How Much Does the Oracle In-Memory Option Cost?

Short answer: Oracle Database In-Memory lists at approximately $23,000 per processor or $460 per Named User Plus, plus 22% annual support, under the 2026 Oracle Technology Price List. Because it is processor-licensed, the cost scales with server core count, not with how much data you actually place in memory.

The list price is the basis Oracle uses for back-license settlements, and it is rarely discounted in an audit context. The table below shows In-Memory cost at list across common Intel x86 deployments using the 0.5 core factor, including the multi-year back-license claim Oracle constructs once it establishes a first-use date from the feature-usage history.

Oracle Database In-Memory cost at list price, 2026 (Intel x86, 0.5 core factor)
DeploymentProcessors LicensedAnnual List Cost3-Year Back-License Claim
Single EE host, 16 cores8 (16 × 0.5)$184,000~$552,000
Analytics host, 32 cores16 (32 × 0.5)$368,000~$1.1M
Enterprise estate, 128 cores64 (128 × 0.5)$1.47M~$4.4M

Oracle applies a 22% annual support uplift on top of the base back-license value and calculates the claim from the first date In-Memory was used. In our engagements, roughly half of In-Memory option claims trace to a non-production database where a DBA tested the feature and never reset INMEMORY_SIZE to zero (Oracle Licensing Experts benchmark, 2026). That pattern — a test that was never unwound — is frequently the strongest basis for narrowing scope and challenging the back-license period. Our Oracle audit defense service works the parameter and feature-usage evidence to reduce these claims.

How Does Oracle LMS Detect In-Memory Usage?

Short answer: Oracle LMS scripts read V$OPTION, the INMEMORY_SIZE value from V$PARAMETER, V$IM_SEGMENTS for populated objects, and DBA_FEATURE_USAGE_STATISTICS for first-use and last-use dates. Because the parameter setting itself is recorded, In-Memory configured and never populated still appears in the audit trail.

Detection is more certain than for almost any other option, because the trigger is a visible parameter rather than buried usage. The USMM and Review Lite scripts capture In-Memory from several sources and correlate them. The representative queries below show what the LMS team runs:

Key LMS Detection Queries (representative)
-- In-Memory Column Store size (the primary trigger)
SELECT name, value FROM v$parameter
WHERE name IN ('inmemory_size','inmemory_force');

-- Objects currently populated in memory
SELECT owner, segment_name, segment_type, bytes_in_mem
FROM v$im_segments;

-- Objects marked INMEMORY at the table level
SELECT owner, table_name, inmemory, inmemory_priority
FROM dba_tables WHERE inmemory = 'ENABLED';

-- Historical feature activation with first-use date
SELECT name, detected_usages, first_usage_date, last_usage_date
FROM dba_feature_usage_statistics
WHERE name LIKE 'In-Memory%';

The decisive view is DBA_FEATURE_USAGE_STATISTICS, populated by DBMS_FEATURE_USAGE_STATISTICS. It records the first and last dates In-Memory was used and is not reset by setting INMEMORY_SIZE back to zero. This is why post-audit remediation reduces ongoing liability but cannot erase the historical record. V$OPTION additionally reports whether In-Memory is installed and enabled at the instance level, independent of segment-level population.

A Non-Zero INMEMORY_SIZE in Your Estate?

Our forensic Oracle compliance review checks every database for In-Memory parameter settings, populated segments and feature-usage history, and calculates exact exposure — before Oracle's LMS team does. Former Oracle insiders, 100% buyer-side.

Get a Confidential Assessment →

Where Does In-Memory Option Exposure Hide?

Based on our forensic compliance reviews across hundreds of enterprise estates, the following scenarios are the most common sources of undiscovered In-Memory exposure.

Abandoned proof-of-concept testing: The classic case. A DBA enables In-Memory on a development or staging database to benchmark a slow report, sees the improvement, files it away as "something to consider," and never resets INMEMORY_SIZE. Months later the parameter is still non-zero and the feature-usage history is accumulating.

Templated database builds: Where a gold-image or DBCA template was created with INMEMORY_SIZE set, every database provisioned from that template inherits the parameter. A single misconfigured template can propagate In-Memory exposure across dozens of databases without anyone deciding to use the feature.

Cloned production-to-test refreshes: When a production database that uses In-Memory is cloned to build test or QA copies, the parameter and the INMEMORY object attributes travel with it. Non-production environments require the option on the same basis as production.

Cloud and Exadata migrations: In-Memory is included differently across Oracle Cloud Infrastructure and Exadata. Workloads migrated from OCI or Exadata to standard on-premises Enterprise Edition servers carry the In-Memory dependency with them — a trap our cloud advisory team sees repeatedly, and the Base Level is unavailable on Engineered Systems.

Mergers and acquisitions: Acquired databases arrive with unknown parameter histories. Oracle's LMS team targets recently acquired companies, anticipating unlicensed options. Quantifying In-Memory exposure before close is part of any disciplined Oracle database licensing due-diligence process.

How Do You Remediate or Right-Size In-Memory Exposure?

If a compliance review reveals In-Memory exposure and buying the option is not the preferred outcome, remediation is technically simple but the evidence handling is what matters. The right path depends on whether an audit letter has already arrived.

  1. Inventory every database: Check INMEMORY_SIZE and INMEMORY_FORCE on every instance — production, standby, test, dev, and DR — and pull first-use dates from feature-usage statistics. Identify any object carrying the INMEMORY attribute.
  2. Reset the parameter where unused: On databases where In-Memory was enabled but is not genuinely needed, set INMEMORY_SIZE to zero and remove INMEMORY attributes from objects, then restart at the next maintenance window.
  3. Apply the Base Level where small-scale use is wanted: Where up to 16GB of column store delivers the value, set INMEMORY_FORCE = BASE_LEVEL and keep INMEMORY_SIZE within 16GB to use In-Memory legitimately without the option — but never on Engineered Systems.
  4. Consolidate genuine In-Memory workloads: Concentrate workloads that truly need full In-Memory onto a smaller, fully licensed footprint so the option is licensed only where required — right-sizing rather than estate-wide licensing.
  5. Document the remediation date: Save query output proving INMEMORY_SIZE is zero (or Base Level) with timestamps. This evidence narrows the back-license window if Oracle later references historical usage.

The evidence question is decisive. Oracle's scripts measure current state, but DBA_FEATURE_USAGE_STATISTICS retains the historical first-use date — so remediation before any audit measurement eliminates current exposure, while remediation after an audit letter reduces future liability without erasing the historical claim. If you genuinely need In-Memory at scale, the option is often worth licensing within an Oracle contract negotiation or ULA, where the incremental cost of bundling In-Memory is far lower than a standalone back-license settlement. Our case studies document multi-million-dollar reductions achieved by combining remediation with negotiation leverage, and our license optimization service right-sizes the option footprint across the estate.

Key Takeaways

  • Oracle Database In-Memory is a separately licensed Enterprise Edition option, not part of the base EE license, and it is licensed per processor on the same footprint as the database.
  • The license triggers the moment INMEMORY_SIZE is set above zero — even if no table is ever populated into the In-Memory Column Store.
  • The option lists at approximately $23,000 per processor in 2026; a 32-core Intel host requires 16 processor licenses, roughly $368,000 at list before discount.
  • The 19c Base Level allows up to 16GB free, but only if INMEMORY_FORCE = BASE_LEVEL is set; an unguarded non-zero INMEMORY_SIZE is full option usage, and the Base Level is unavailable on Engineered Systems.
  • Detection is near-certain: V$PARAMETER, V$IM_SEGMENTS, V$OPTION and DBA_FEATURE_USAGE_STATISTICS expose usage and first-use dates within minutes of an audit.
  • Roughly half of In-Memory claims in our engagements trace to a non-production database where the feature was tested and INMEMORY_SIZE was never reset (Oracle Licensing Experts benchmark, 2026).
  • Resetting INMEMORY_SIZE to zero removes current exposure, but feature usage statistics retain the historical first-use date — remediate before any audit measurement, not after.
Download the Oracle Database Licensing Masterclass

Comprehensive guide to all Oracle Database options, metrics, and compliance traps — written by former Oracle insiders for enterprise IT and procurement teams.

Download Free →

Frequently Asked Questions

Is Oracle Database In-Memory free with Enterprise Edition?

No. Oracle Database In-Memory is a separately licensed Enterprise Edition option and is not included in the base Enterprise Edition license. The option is required the moment the INMEMORY_SIZE initialization parameter is set above zero, regardless of whether any table is actually populated into the In-Memory Column Store.

What triggers the Oracle In-Memory option license?

The license triggers when INMEMORY_SIZE is set to any value greater than zero. Setting the parameter allocates the In-Memory Column Store in the SGA and is recorded as feature usage even if no objects are marked INMEMORY. Marking a table, partition, or materialized view with the INMEMORY attribute also triggers the option.

How much does the Oracle In-Memory option cost?

Oracle Database In-Memory lists at approximately $23,000 per processor or $460 per Named User Plus, plus 22% annual support, under the 2026 Oracle Technology Price List. On an Intel server with a 0.5 core factor, a 32-core host requires 16 processor licenses, or roughly $368,000 at list before any negotiated discount.

How does Oracle detect In-Memory option usage?

Oracle LMS scripts read V$OPTION, the INMEMORY_SIZE parameter from V$PARAMETER, V$IM_SEGMENTS for populated objects, and DBA_FEATURE_USAGE_STATISTICS, which records first and last use dates. Because the parameter setting itself is recorded, In-Memory configured and never used can still appear in the audit trail.

Can the free 16GB Base Level In-Memory be used without a license?

Oracle introduced a Base Level in 19c that permits up to 16GB of column store without the option, but it requires INMEMORY_FORCE to be set to BASE_LEVEL. If that parameter is not set and INMEMORY_SIZE exceeds zero, full option licensing applies. The Base Level is also unavailable on Engineered Systems such as Exadata.

Can I remove In-Memory to avoid an option claim?

Setting INMEMORY_SIZE back to zero and removing INMEMORY attributes stops current usage, but DBA_FEATURE_USAGE_STATISTICS retains the historical first-use date. Remediation before any audit measurement eliminates current exposure; remediation after an audit letter reduces future liability but does not erase the back-license claim for the period the option was active.

Related Articles

More Oracle Database Licensing Guides

Oracle Licensing Intelligence

Stay Ahead of Oracle's Compliance Agenda

Weekly briefing on Oracle audit tactics, license changes, and negotiation intelligence — read by 2,000+ Oracle stakeholders at Fortune 500 enterprises.

Independent. Buyer-side. Not affiliated with Oracle Corporation.

FF

By Fredrik Filipsson — Reviewed by the Oracle Licensing Experts Editorial Team

Former Oracle licensing and contracts specialist, 25+ years of Oracle expertise, now working exclusively for enterprise buyers. Independent, buyer-side, and not affiliated with Oracle Corporation. Learn about our team →

Independent Oracle Licensing Advisory

Your In-Memory Option Exposure
Needs to Be Quantified Now

Oracle's LMS team reads INMEMORY_SIZE and the feature-usage history in seconds. A forensic compliance review identifies every In-Memory dependency, calculates exact exposure, and gives you the evidence base to defend, remediate, or negotiate — before Oracle arrives.

Schedule a Confidential Assessment → Compliance Review Service

Not affiliated with Oracle Corporation. 100% independent, buyer-side advisory.