Understand what Oracle OLAP cubes are, why the option is deprecated, how to check whether your database uses it, and how to build the same model with analytic views.
Oracle OLAP is the multidimensional engine that stores cubes inside Oracle Database as analytic workspaces. It still ships as an extra-cost Enterprise Edition option, but it is deprecated: Oracle's documentation says OLAP "will not be supported beyond the term of the current release (Oracle AI Database 26ai) premier support" and "strongly recommends that you do not start new projects using OLAP". If you are choosing a technology today, use analytic views. If you already run OLAP cubes, plan the migration.
The rest of this page explains what the OLAP option does, how to tell whether you are using it, and what the replacement looks like.
What Oracle OLAP is
A relational star schema stores facts in one table and dimensions in others, and every summary is computed with GROUP BY at query time (or precomputed in materialized views). Oracle OLAP takes a different route. It loads the data into a cube held in an analytic workspace, a multidimensional structure stored as LOBs in a table named AW$<workspace> in your schema.
The pieces you will meet in an OLAP system:
Piece
What it is
Analytic workspace (AW)
The container that stores dimensions, cubes and their data
Dimension
A list of members (products, months, regions) arranged in levels and hierarchies
Cube
Measures (sales, units) organised by a set of dimensions
Calculated measure
A formula such as share, prior period or year-to-date, defined once in the cube
Cube and dimension views
Relational views that expose the cube so plain SQL can query it
Cube-organised materialized view
A cube registered as a materialized view so query rewrite can redirect summary SQL to it
OLAP DML
The procedural language used inside the workspace
Analytic Workspace Manager (AWM)
The desktop tool used to design and build cubes
Cubes are built and refreshed by a load process, typically DBMS_CUBE.BUILD. That build step is both the strength and the weakness of the design: queries against pre-aggregated cells are fast, but data is only as fresh as the last build, and build time grows with data volume and model complexity.
Your long query needed undo that was already overwritten. How Oracle read consistency uses undo, how to read V$UNDOSTAT, and why committing inside a loop causes it.
Deprecated, with an end date. Analytic workspaces, the OLAP DML language, financial reporting and the OLAP Java API are all listed as deprecated in the OLAP User's Guide, and support ends with Premier Support for the current long-term release.
Licensing. The licensing manual still lists OLAP as an extra-cost option for Enterprise Edition. It is not available on Standard Edition 2. Oracle has stated that the option was removed from its technology price list on June 1, 2024, so treat it as something existing customers keep supported rather than something you buy new. Confirm your own position with your Oracle contract.
No new investment. The surrounding tooling (AWM, the Excel/MDX connectors from third parties, the OBIEE integration the option was once marketed with) has not kept pace with current releases.
How to check whether a database uses OLAP
Run these as a DBA. The first shows whether the option is installed, the second whether anyone has built anything with it.
SELECT comp_id, comp_name, version, status
FROM dba_registry
WHERE comp_id IN ('APS', 'XOQ');
APS is the OLAP Analytic Workspace component and XOQ is the OLAP API. No rows means the option is not installed.
SELECT owner, aw_name
FROM dba_aws
WHERE owner NOTIN ('SYS');
SELECT owner, cube_name
FROM dba_cubes;
User-owned rows here mean real cubes exist and something may depend on them. Installed-but-unused is common, because older database templates installed OLAP by default. Usage of an extra-cost option matters for licence audits, so also check DBA_FEATURE_USAGE_STATISTICS for OLAP entries.
The replacement: analytic views
Analytic views arrived in Oracle Database 12c Release 2. They give you the same dimensional model (hierarchies, levels, aggregation rules, calculated measures) as a metadata layer over ordinary tables. Nothing is copied and there is no build step, so results always reflect the current table data.
You create three kinds of object:
An attribute dimension maps a dimension table's columns to attributes and levels.
A hierarchy orders those levels.
An analytic view joins a fact table to the dimensions and declares measures.
The example below uses a two-table star schema.
CREATE TABLE time_dim (
month_id VARCHAR2(7) PRIMARY KEY, -- '2026-01'
month_name VARCHAR2(20) NOT NULL,
year_id VARCHAR2(4) NOT NULL
);
CREATE TABLE sales_fact (
month_id VARCHAR2(7) NOT NULLREFERENCES time_dim (month_id),
amount NUMBER(12,2) NOT NULL
);
INSERT INTO time_dim VALUES ('2025-12', 'December 2025', '2025');
INSERT INTO time_dim VALUES ('2026-01', 'January 2026', '2026');
INSERT INTO time_dim VALUES ('2026-02', 'February 2026', '2026');
INSERT INTO sales_fact VALUES ('2025-12', 900);
INSERT INTO sales_fact VALUES ('2026-01', 1000);
INSERT INTO sales_fact VALUES ('2026-01', 250);
INSERT INTO sales_fact VALUES ('2026-02', 1500);
COMMIT;
CREATEOR REPLACE ATTRIBUTE DIMENSION time_attr_dim
USING time_dim
ATTRIBUTES (year_id, month_id, month_name)
LEVEL month
KEY month_id
MEMBER NAME month_name
ORDERBY month_id
DETERMINES (year_id)
LEVEL year
KEY year_id
MEMBER NAME year_id
ORDERBY year_id;
CREATEOR REPLACE HIERARCHY time_hier
USING time_attr_dim
(month CHILD OFyear);
CREATEOR REPLACE ANALYTIC VIEW sales_av
USING sales_fact
DIMENSION BY
(time_attr_dim
KEY month_id REFERENCES month_id
HIERARCHIES (time_hier DEFAULT))
MEASURES
(sales FACT amount,
sales_prior_period AS (LAG(sales) OVER (HIERARCHY time_hier OFFSET1)))
DEFAULT MEASURE sales;
Query it without GROUP BY or joins. You pick the hierarchy and filter on the level you want:
SELECT time_hier.member_name ASperiod,
sales,
sales_prior_period
FROM sales_av HIERARCHIES (time_hier)
WHERE time_hier.level_name ='MONTH'ORDERBY time_hier.hier_order;
PERIOD SALES SALES_PRIOR_PERIOD
--------------- ------- -------------------
December 2025 900
January 2026 1250 900
February 2026 1500 1250
Change the filter to 'YEAR' and the same view returns yearly totals. 'ALL' returns the grand total.
To create these objects in your own schema you need the CREATE ATTRIBUTE DIMENSION, CREATE HIERARCHY and CREATE ANALYTIC VIEW system privileges, plus read access to the underlying tables.
OLAP cubes compared with analytic views
OLAP option
Analytic views
Data storage
Copied into an analytic workspace
Stays in your tables
Refresh
Cube build required
None; always current
Licence
Extra-cost Enterprise Edition option
A feature of the database, not a separate option
Query language
SQL on cube views, OLAP DML, MDX through connectors
SQL, with HIERARCHIES and calculated measures
Forecasting, allocations, what-if
Yes, through OLAP DML
Not built in
Status
Deprecated
Current
Performance comes from different places. A cube answers from stored aggregates. An analytic view generates SQL against the base tables, so it is as fast as those tables allow; Oracle's guidance is that with columnar storage (Database In-Memory, or Exadata/Autonomous columnar formats) query performance is similar to the OLAP option. On large row-store fact tables, add materialized views or aggregate tables for the common levels.
Migration notes
Dimensional reporting cubes map well: each cube dimension becomes an attribute dimension plus hierarchies, each stored measure becomes a FACT measure, and most calculated measures (share, lead/lag, period-to-date, rank) have direct analytic view expressions.
Custom OLAP DML programs, forecasting and allocation models have no analytic view equivalent. Oracle points these workloads to Oracle Essbase.
The source tables are your starting point. If the star schema that fed the cube still exists, build the analytic views on it and compare results with the cube views before switching reports over.
Removing the option after migration is a separate DBA task with its own procedure; uninstalling APS and XOQ from a database that still has analytic workspaces will break them. Drop or export the workspaces first.
Common points of confusion
Analytic views are not analytic functions.SUM(...) OVER (...) window functions are a core SQL feature unrelated to either OLAP or analytic views.
Materialized views do not need OLAP. Ordinary materialized views with query rewrite are part of Enterprise Edition and are not affected by this deprecation. Only cube-organised materialized views depend on the OLAP option.
"OLAP" in general is not going away. Only the Oracle OLAP option is deprecated. Dimensional analysis in Oracle now happens through analytic views, in-memory column store and SQL.
Create, find, drop, disable and enable primary keys in Oracle, including composite keys, identity columns, the index behind the constraint and the ORA errors you will hit.