Oracle Database Licensing · In-Memory Option

Oracle In-Memory Database Option Licensing: Cost, Architecture & When the $23,000/Processor Trap Triggers

Oracle Database In-Memory enables a dual-format architecture inside a single Oracle Database instance — traditional row-based format for OLTP workloads and a columnar in-memory format for analytic queries — without requiring a separate data warehouse. It is a separately licensed option for Oracle Database Enterprise Edition at $23,000 per processor. The compliance trap is straightforward and expensive: setting INMEMORY_SIZE to any non-zero value in your init.ora or spfile — even as a test — activates the option and requires a licence on every processor running that instance. In a RAC cluster, that means every node. Former Oracle insiders explain exactly what triggers the In-Memory licence, how Oracle LMS detects usage, and how to defend against inflated In-Memory audit claims.

📅 March 2026 ⏱ 13 min read 🏷 Oracle Database · In-Memory · Options Licensing · Audit Defence
Get a Compliance Review → Audit Defence Service

What Oracle Database In-Memory Does

Oracle Database In-Memory, introduced in Oracle Database 12c Release 1, enables a dual-format architecture within a standard Oracle Database instance. Row-format data continues to be stored on disk and in the buffer cache for OLTP operations — inserts, updates, deletes, and row-by-row retrieval. Simultaneously, selected tables, partitions, or materialized views are populated in a separate in-memory columnar format called the In-Memory Column Store (IMCS) for analytic queries — full table scans, aggregations, joins, and filters across large datasets.

The performance case is genuine: columnar in-memory processing can deliver 100x speed improvements for analytic queries compared to traditional row-format scans, without requiring a separate analytical database or ETL pipeline. Oracle has marketed In-Memory as a core competitive differentiator for mixed OLTP/OLAP workloads since its introduction.

Oracle Database In-Memory: Technical Capabilities

  • In-Memory Column Store (IMCS) — dedicated SGA memory pool storing columnar-format versions of rows; populated from disk-format data at instance startup or on demand via DBMS_INMEMORY
  • In-Memory Scans — vectorised, SIMD-accelerated full table scans against columnar data; bypasses buffer cache; delivers 10–100x scan performance improvements for appropriate query patterns
  • In-Memory Aggregation — KEY VECTOR and VECTOR GROUP BY operations in the SQL execution engine; enabled automatically when INMEMORY_SIZE > 0
  • In-Memory Join Groups — pre-computes column-level hash join structures for frequently joined tables; eliminates repeated hash join overhead; requires INMEMORY_SIZE > 0
  • Automatic Data Optimisation (ADO) integration — heat map-based automatic tier management including In-Memory population based on data temperature
  • In-Memory External Tables — caches data from external table sources in the IMCS; treats external data as if it were native Oracle data for query purposes
  • In-Memory on Active Data Guard — requires both Active Data Guard licence AND In-Memory licence; used to offload analytic queries to a standby database
  • In-Memory Base Level (21c+) — a limited free tier introduced in Oracle 21c allowing a 16MB IMCS; this is extremely limited and not suitable for production analytic use

The distinction that matters for licensing: Oracle Database In-Memory is not a product you install separately. It is a capability built into Oracle Database EE that is activated by setting a single initialisation parameter. This architecture makes accidental activation — and accidental licence triggering — straightforward.

Oracle In-Memory Option Pricing

Oracle Database In-Memory is priced as an Oracle Database EE option. Its list price is $23,000 per processor (per physical processor socket, applying the Core Factor Table for CPU reduction). Annual support is $5,060 per processor at the standard 22% support rate — though Oracle's published metric may vary slightly year over year. As with all Oracle Database options, you must also hold an underlying EE licence for every processor on which the option is deployed.

$23K List price per processor (EE option)
$5,060 Annual support per processor (22%)
100% RAC nodes: all must be licensed

For a typical 8-core Intel server, applying the Core Factor Table (0.5 for Intel multi-core) reduces 8 cores to 4 processor licences. In-Memory would cost $92,000 in licence fees plus $20,240 in annual support on that single server. Scale to a 4-node RAC cluster — common for production OLAP use cases — and the figure reaches $368,000 in licences plus $80,960 annually in support. These figures assume Intel processors at the 0.5 core factor; SPARC T-series at 0.25 further reduces the licence count but Oracle hardware is increasingly rare in enterprise estates.

Oracle's list prices are not what enterprises pay. Enterprise deals typically achieve 50–75% discount on options. Our Oracle contract negotiation service has benchmark data on In-Memory discounts across industries. The gap between list price and contracted price is where negotiation leverage lives — but that leverage disappears once you are under audit.

Exactly What Triggers the In-Memory Licence Requirement

The Oracle Database In-Memory licence requirement is triggered by a single condition: setting the INMEMORY_SIZE initialisation parameter to a value greater than zero. There are no other conditions. You do not need to populate any objects into the In-Memory Column Store. You do not need to query any In-Memory data. You do not need to explicitly enable the INMEMORY attribute on any table or partition. Setting INMEMORY_SIZE > 0 is sufficient — and Oracle's LMS audit scripts will identify it.

Actions That Trigger the In-Memory Licence Requirement

  • Setting INMEMORY_SIZE in spfile or init.ora to any non-zero value — even 100MB as a test; this alone constitutes licence usage under Oracle's policy
  • Setting INMEMORY_SIZE via ALTER SYSTEM — live parameter changes at the system level; recorded in V$PARAMETER and detected by LMS scripts even if subsequently set back to zero
  • Enabling automatic In-Memory through Automatic Data Optimisation policies — ADO heat map policies can automatically populate objects into the IMCS if INMEMORY_SIZE > 0
  • Oracle-managed cloud services enabling In-Memory without customer knowledge — some Oracle Autonomous Database configurations enable In-Memory features; review your Autonomous DB settings carefully

Actions That Do NOT Trigger the In-Memory Licence Requirement

  • Having INMEMORY_SIZE = 0 (default) — the default value in Oracle Database is zero; no In-Memory licence is required when this parameter is zero
  • Using In-Memory Base Level (21c and 23ai) — Oracle 21c and later include a free In-Memory Base Level tier limited to 16MB of IMCS; this is included in EE without additional licence (not sufficient for production use)
  • Installing Oracle Database EE without configuring INMEMORY_SIZE — installation of EE alone does not trigger In-Memory; no parameter is set by default
  • Using other in-memory caching technologies — Oracle's buffer cache, Oracle Times Ten in-memory database (separately licensed product), or third-party in-memory caches do not trigger the Oracle Database In-Memory option licence

The practical risk zone is testing and proof-of-concept work. A DBA who sets INMEMORY_SIZE to 8GB to test analytic query performance, then reduces it back to zero after the test, has technically used the In-Memory option. Oracle's LMS scripts look at both current and historical V$PARAMETER values where database audit trails are enabled. The test environment that was "just trying it out" creates a licence requirement that Oracle will claim extends across the full production estate in many audit scenarios.

Is In-Memory actually deployed in your estate?

Our Oracle compliance review includes a full Oracle Database options scan — including INMEMORY_SIZE parameter analysis — across your estate before Oracle LMS arrives. We identify what is deployed, what is licensed, and where the gaps are.

Get a Confidential Assessment →

The RAC Cluster Multiplier Trap

Oracle's licence rule for Database options is that an option must be licensed on every processor in the cluster where it is deployed. For Oracle Database In-Memory in a RAC environment, this means every node in the RAC cluster must be licensed for In-Memory — even if the In-Memory Column Store is not populated on every node, and even if analytic queries only execute on one or two nodes in practice.

Oracle's metric for RAC licensing is consistent with all options: you cannot selectively license In-Memory on a subset of RAC nodes. The moment INMEMORY_SIZE > 0 on any RAC instance, all instances in that cluster require In-Memory licensing. This is Oracle's standard cluster licensing rule and applies equally to Partitioning, Advanced Security, Diagnostics Pack, Tuning Pack, and every other separately licensed option.

The RAC multiplier scenario: A 4-node RAC cluster with dual 8-core processors per node (32 physical sockets, Intel at 0.5 core factor = 16 processor licences per node, 64 total). In-Memory enabled on all nodes = 64 × $23,000 = $1.472M list price for In-Memory alone, before discounts. Annual support at 22%: $323,840. One parameter setting on a test node in a RAC cluster can create a million-dollar back-licence claim.

We have seen Oracle LMS audit claims based on INMEMORY_SIZE being set during a test in a pre-production RAC cluster that shares Oracle Home with the production cluster. Oracle's position in such scenarios is that the production estate requires In-Memory licensing because the option was available and accessible — even if production never used it. Challenging this requires forensic evidence of actual usage boundaries, which is exactly what our Oracle audit defence service delivers.

How Oracle LMS Detects In-Memory Usage

Oracle's License Management Services team uses the USMM (Usage and Measurement Management) tool and custom LMS scripts to detect Oracle Database option usage. For In-Memory, the detection methodology is specific and automated. Understanding exactly what Oracle looks for is critical to building a credible defence.

Oracle LMS In-Memory Detection Points

  • V$PARAMETER query for INMEMORY_SIZE — LMS scripts query V$PARAMETER and V$PARAMETER2 for the current value of INMEMORY_SIZE; any non-zero value flags In-Memory as in use
  • V$INMEMORY_AREA query — LMS queries V$INMEMORY_AREA to check the current size of the allocated In-Memory Column Store; populated when INMEMORY_SIZE > 0
  • DBA_OBJECTS with INMEMORY attribute — LMS checks DBA_TABLES, DBA_SEGMENTS, and related views for objects with INMEMORY = 'ENABLED'; objects explicitly marked for In-Memory population confirm usage
  • AWR data for In-Memory activity (if Diagnostics Pack licensed) — AWR reports contain In-Memory column cache statistics; if Diagnostics Pack is separately licensed, AWR data corroborates In-Memory usage
  • INMEMORY_CLAUSE_DEFAULT parameter check — a non-NULL value for this parameter indicates In-Memory is actively configured as a default for new objects
  • V$SGA for In-Memory Pool size — V$SGA shows the In-Memory Area as a distinct SGA component when allocated; LMS scripts capture current SGA allocation

The critical point for audit defence is that Oracle LMS scripts capture a point-in-time snapshot. If INMEMORY_SIZE has been set to zero at the time of measurement, the scripts will typically not find current In-Memory usage. However, Oracle may request historical parameter change data from the database audit trail or from Oracle Enterprise Manager metrics if those are in use. Your defence posture should include documentation of when and why any INMEMORY_SIZE changes were made — and evidence that production workloads did not rely on In-Memory capabilities.

If you have received an LMS audit letter and are concerned about In-Memory exposure, our audit defence team can review your LMS script outputs and help you construct a technical and contractual challenge to any In-Memory claims.

In-Memory Licensing on OCI, AWS, Azure and GCP

Cloud deployment does not change the fundamental Oracle Database In-Memory licence requirement — it changes the metric for counting the licence. On-premises uses physical processors with the Core Factor Table applied. In cloud environments, the metric shifts to physical cores (not virtual CPUs) on the underlying physical host, or to a negotiated virtual CPU (vCPU) metric depending on the contract and licence type.

Cloud Platform In-Memory Licensing Rules

  • Oracle OCI (BYOL) — when bringing your own licence to OCI, In-Memory is licensed per OCPU (Oracle CPU = 1 physical core); 2 OCPUs = 1 Oracle processor licence at standard OCI ratios; confirm in your specific OCI BYOL terms
  • Oracle OCI (Universal Credits / PAYG) — Oracle Autonomous Database and Exadata Cloud Service include In-Memory capabilities as part of the service pricing; no separate In-Memory option licence required for these managed services
  • AWS EC2 BYOL — Oracle policy requires licensing based on physical cores of the AWS instance host; AWS provides Dedicated Hosts for Oracle that define the physical core count; standard ratio is 2 vCPUs = 1 Oracle processor licence for Intel architectures, subject to Core Factor Table
  • Azure BYOL — same physical-core-based approach on Azure Dedicated Host; 2 vCPUs = 1 Oracle processor for Intel licensing metric; In-Memory triggers same rules as on-premises
  • GCP BYOL — Google Cloud requires Oracle licensing based on underlying physical cores; Sole-Tenant nodes provide the physical isolation Oracle requires for BYOL compliance

Cloud environments create additional complexity because autoscaling — adding virtual machines or increasing instance sizes to handle load — can trigger In-Memory licence requirements on additional processors if INMEMORY_SIZE is set in the base image. An auto-scaling group that launches new Oracle Database instances from a template with INMEMORY_SIZE > 0 technically creates a licence requirement on every instance launched. Oracle's cloud licensing guide covers these scenarios in depth.

Our Oracle Cloud and OCI advisory service helps enterprises review their cloud BYOL configuration to identify In-Memory exposure before deploying at scale.

Oracle In-Memory audit claim incoming?

We have successfully challenged inflated In-Memory back-licence claims by demonstrating that production workloads never relied on In-Memory capabilities — only test environments triggered the parameter. Our audit defence team knows exactly how Oracle builds these cases and how to dismantle them.

Talk to a Former Oracle Insider →

When to Right-Size: Alternatives and Mitigation Strategies

Oracle Database In-Memory delivers genuine performance benefits for analytic-heavy workloads running on Oracle Database EE. The question is not whether In-Memory works — it does — but whether the $23,000 per processor price is justified versus alternatives. There are several legitimate strategies for enterprises who want analytic performance without paying Oracle's In-Memory option premium.

Alternatives to Oracle Database In-Memory

  • Oracle Database 21c/23ai In-Memory Base Level — the 16MB free tier is insufficient for production use but eliminates the licence requirement for minimal testing; only viable for non-production exploration
  • Materialised views and query rewrite — pre-computed aggregations stored as materialised views provide many of the query performance benefits of In-Memory for well-defined analytic query patterns; included in EE without additional licence
  • Oracle Partitioning for scan eliminationOracle Partitioning ($17,500 per processor) enables partition pruning that dramatically reduces scan volume for time-series and category-based analytic queries; often more cost-effective than In-Memory for structured data patterns
  • PostgreSQL with columnar extensions — enterprises running mixed OLTP/OLAP workloads on Oracle are increasingly evaluating PostgreSQL with extensions such as Citus, TimescaleDB, or the pg_columnar extension for analytic offload; eliminates Oracle Database option costs entirely
  • Separate analytical database — offloading analytic workloads to a purpose-built warehouse (Snowflake, Redshift, BigQuery, or Oracle Autonomous Data Warehouse) eliminates the need for In-Memory in the OLTP Oracle instance; the added ETL/ELT pipeline complexity is often offset by lower total licensing cost
  • Oracle Exadata — Exadata's Smart Scan and Hybrid Columnar Compression technologies provide columnar-style scan performance without a separately licensed In-Memory option; Exadata subscription models include these capabilities in the base service price

Our Oracle licence optimisation service conducts an evidence-based assessment of whether In-Memory is delivering return on its option cost relative to alternatives. We have helped enterprises identify $1M+ in annual savings by right-sizing Database options including In-Memory through a combination of negotiated discount improvements and legitimate architectural changes.

The Oracle Database options landscape — In-Memory, Diagnostics Pack, Tuning Pack, Partitioning, RAC, Advanced Security, Active Data Guard, Database Vault, GoldenGate — collectively adds $100,000+ per processor in list-price options to many enterprise Oracle estates. Reviewing the full Oracle Database options licensing picture as a unit often reveals significant right-sizing opportunities.

Defending Against Oracle In-Memory Audit Claims

If Oracle LMS has identified In-Memory usage in your environment and is claiming back-licence fees, the defence strategy depends on the technical facts of your specific deployment. There is no universal response, but there are consistent technical and contractual challenges that reduce or eliminate In-Memory claims.

In-Memory Audit Defence Strategies

  • Challenge LMS measurement methodology — if Oracle's scripts queried V$PARAMETER at a time when INMEMORY_SIZE had been temporarily set during a test, verify that the snapshot represents a non-representative point in time; request full historical parameter change records to establish production configuration baseline
  • Demonstrate production workload independence from In-Memory — if INMEMORY_SIZE was set but no objects were populated into the IMCS, or if queries that executed did not use the In-Memory Column Store path (V$SQL statistics show non-In-Memory execution plans), the performance benefit of In-Memory was not realised; challenge Oracle's claim that a licence is owed for unused capability
  • Scrutinise the RAC cluster scope claim — if Oracle is claiming In-Memory licences for all nodes in a RAC cluster based on a single node's parameter setting, verify whether the RAC cluster was fully operational with all nodes during the period of In-Memory usage; decommissioned nodes and temporary test nodes should be excluded
  • Review the licence period claimed — Oracle typically claims back-licences from the date of first detected usage; if In-Memory was enabled briefly during a specific test period and disabled, the back-licence period should reflect actual usage duration, not the full audit measurement period
  • Negotiate on commercial settlement rather than technical merit alone — even where Oracle has a technically valid In-Memory claim, the settlement amount is negotiable; Oracle's agenda is always to convert audit findings into cloud subscriptions or larger EA renewals; use the audit finding as leverage to renegotiate broader contract terms rather than paying Oracle's initial claim figure

In a recent engagement, a manufacturing client received an In-Memory back-licence claim of $2.8M based on a 4-node RAC cluster where INMEMORY_SIZE had been set to 32GB during a 6-week proof-of-concept 18 months earlier. We demonstrated that the PoC instance was a non-production clone on the same cluster, that no production queries used the In-Memory Column Store execution path, and that INMEMORY_SIZE was reset to zero before production go-live. The final settlement: $0 for In-Memory, plus a 3-year EE contract with improved pricing terms. See our case studies for more examples of how we challenge Oracle audit claims.

Key Takeaways: Oracle In-Memory Option Licensing

  • Oracle Database In-Memory is a $23,000 per processor EE option triggered by setting INMEMORY_SIZE > 0 in any Oracle Database instance parameter file
  • In a RAC cluster, In-Memory must be licensed on every node in the cluster — even if only one node had INMEMORY_SIZE > 0
  • Oracle LMS detects In-Memory through V$PARAMETER queries for INMEMORY_SIZE and V$INMEMORY_AREA; a DBA test that set and reset the parameter may still be flagged
  • Cloud deployments using BYOL require the same In-Memory licence based on physical cores; autoscaling with In-Memory-enabled templates creates per-instance licence requirements
  • Oracle 21c and later include a 16MB In-Memory Base Level free tier — useful for testing only, not sufficient for production analytic workloads
  • Alternatives including materialised views, Partitioning, and separate analytic databases often deliver better value than paying Oracle's In-Memory option premium
  • Audit claims for In-Memory are challengeable: focus on actual production usage of the In-Memory Column Store execution path, not merely INMEMORY_SIZE parameter history

Oracle Database Licensing Masterclass

Every Oracle Database option — In-Memory, Diagnostics Pack, Partitioning, RAC, Advanced Security, Active Data Guard — explained with pricing, licence triggers, and audit defence strategies.

Download Free White Paper →
Stay Informed

Oracle Licensing Intelligence

Audit alerts, option licensing updates, and negotiation tactics — direct to your inbox. Read by Oracle stakeholders at 500+ enterprises.

No spam. Unsubscribe anytime. Independent, not affiliated with Oracle.

Written by the Oracle Licensing Experts team — former Oracle executives, LMS auditors, and contract managers who now work exclusively for enterprise buyers. Not affiliated with Oracle Corporation.

Free Research

Download our Oracle OCI Licensing Guide — expert analysis from former Oracle insiders, 100% buyer-side.

Download the OCI Licensing Guide →

Free Research

Download our Oracle BYOL on AWS and Azure Guide — expert analysis from former Oracle insiders, 100% buyer-side.

Download the BYOL on AWS & Azure Guide →

Free Research

Download our Oracle SaaS Subscription Negotiation Guide — expert analysis from former Oracle insiders, 100% buyer-side.

Download the SaaS Negotiation Guide →