Licensing

Oracle Diagnostics Pack Usage: How to Check It, How to Stop It

3 November 2026

The Diagnostics Pack and the Tuning Pack are licensed apart from Enterprise Edition, they are switched on by default on every Enterprise Edition database, and Oracle keeps a record of every use. A DBA who has never bought them has usually used them: one AWR report during an incident, one ADDM run, one query on DBA_HIST_ACTIVE_SESS_HISTORY, and the row in DBA_FEATURE_USAGE_STATISTICS is there for the next license review. Three things settle it: the switch, which is one parameter; the record, which is one view; and a monitoring tool that never touches either pack, which is what Scops is.

The switch

SELECT name, value, isdefault
FROM   v$parameter
WHERE  name = 'control_management_pack_access';

Oracle's reference: "CONTROL_MANAGEMENT_PACK_ACCESS specifies which of the Server Manageability Packs should be active." The values are NONE, "Both packs are not available"; DIAGNOSTIC, "Only the DIAGNOSTIC pack is available"; and DIAGNOSTIC+TUNING, "Both packs are available. This is the default." The default is DIAGNOSTIC+TUNING on Enterprise Edition and NONE on all other editions, "The DIAGNOSTIC pack includes AWR, ADDM, and so on", "The TUNING pack includes SQL Tuning Advisor, SQLAccess Advisor, and so on", and "A license for DIAGNOSTIC is required for enabling the TUNING pack." The parameter is set with ALTER SYSTEM and is not modifiable in a pluggable database, so in a container database it is set once, in the root, for every PDB. A value of NONE on a database that has no pack license is the single most useful line in an Oracle license review, because from then on the AWR report, the ADDM report, the ASH report and Performance Hub refuse to run, and the record stops growing.

What counts as use

Oracle's Database Licensing Information User Manual lists the objects of each pack. For the Diagnostics Pack: "The V$ACTIVE_SESSION_HISTORY dynamic performance view and its underlying table, X$ASH, are part of this pack", and "All data dictionary views beginning with the prefix DBA_HIST_ are part of this pack", with six exceptions that "can be used without the Oracle Diagnostics Pack license": DBA_HIST_SNAPSHOT, DBA_HIST_DATABASE_INSTANCE, DBA_HIST_SNAP_ERROR, DBA_HIST_SEG_STAT, DBA_HIST_SEG_STAT_OBJ and DBA_HIST_UNDOSTAT. The packages DBMS_WORKLOAD_REPOSITORY, DBMS_ADDM, DBMS_PERF and DBMS_UMF and the scripts awrrpt, ashrpt and addmrpt are in the pack. For the Tuning Pack: DBMS_SQLTUNE, DBMS_SQL_MONITOR, DBMS_AUTO_SQLTUNE, V$SQL_MONITOR, V$SQL_PLAN_MONITOR and sqltrpt.sql; the features are the SQL Tuning Advisor, the SQL Access Advisor and Real-Time SQL Monitoring. The same manual states what is free: "SQL Plan Management does not require a license for Oracle Diagnostics Pack or Oracle Tuning Pack", and every V$ view other than the two named above is part of the database you already own. The trap most databases fall into is the Automatic SQL Tuning Advisor, a Tuning Pack feature that the Administrator's Guide lists among the predefined automated maintenance tasks, "configured to run in all maintenance windows" by default, which is a Tuning Pack use every night without anyone asking for it.

The record

SELECT name, version, detected_usages, total_samples, currently_used,
       first_usage_date, last_usage_date
FROM   dba_feature_usage_statistics
WHERE  detected_usages > 0
AND   (name LIKE '%ADDM%'         OR name LIKE '%AWR%'
    OR name LIKE '%Diagnostic%'   OR name LIKE '%Tuning%'
    OR name LIKE '%SQL Monitor%'  OR name LIKE '%SQL Profile%'
    OR name LIKE '%Baseline%'     OR name LIKE '%Active Session%'
    OR name LIKE '%Performance%'  OR name LIKE '%Advisor%')
ORDER  BY last_usage_date DESC;

The reference describes the view as "information about database feature usage statistics", and its columns are the review: DETECTED_USAGES, the "Number of times the system has detected usage for the feature"; TOTAL_SAMPLES, the "Number of times the system has woken up and checked for feature usage"; CURRENTLY_USED, "whether usage was detected the last time the system checked"; and the first and last dates on which usage was detected. The sampler runs on an interval the view reports in SAMPLE_INTERVAL, in seconds, so a use made this morning shows up at the next sample, not at once, and the VERSION column keeps the rows of every release the database has run, so a use from before the last upgrade is still there. The feature names change between releases, which is why the query matches on patterns rather than on a list; the full list with Oracle's own description of how each use is detected is SELECT name, description FROM dba_feature_usage_statistics ORDER BY name, which is the query the reference itself suggests. Oracle's license reviews read this view through a script of their own, and it is the same rows.

Turning the packs off

  1. Set the switch. ALTER SYSTEM SET control_management_pack_access = 'NONE' SCOPE = BOTH; in the root of a container database. The reports and the advisors stop at once; no restart.
  2. Stop the night-time use. DBMS_AUTO_TASK_ADMIN.DISABLE('sql tuning advisor', NULL, NULL) turns the Automatic SQL Tuning Advisor task off in every window, so the Tuning Pack is not used on your behalf while you sleep. The optimizer statistics collection, which needs no pack, keeps running.
  3. Stop reading the pack views. Scripts, dashboards and tools that query DBA_HIST_ views or V$ACTIVE_SESSION_HISTORY are uses whatever the switch says. Find them in V$SQL by sql_text LIKE '%DBA_HIST%' and in the job and tool logs, and point them at the free views instead.
  4. Decide about the snapshots. AWR snapshots keep being taken with the switch at NONE; they are a separate setting. DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 0) disables them, "automatic and manual snapshots will be disabled" in the words of the package reference, and STATISTICS_LEVEL = BASIC disables them too, along with a long list of free features the reference says Oracle "strongly recommends that you do not disable". Most databases leave the snapshots on and the switch off; the switch and the absence of reads are what the record reflects.
  5. Keep the record. Query the view once a quarter, keep the output, and mark the date the switch went to NONE. A review that finds a use from before that date and none after it is a short review.

Monitoring without the packs

Scops monitors an Oracle database through one read-only account with CREATE SESSION and SELECT_CATALOG_ROLE, and it never reads a pack object unless you turn a switch on. Its own history replaces the pack's: it samples every session every 5 seconds and keeps the samples in its repository, so the Activity chart, the session history and the wait analysis that V$ACTIVE_SESSION_HISTORY and DBA_HIST_ACTIVE_SESS_HISTORY would give come from Scops' own data, on Enterprise Edition and on Standard Edition 2 alike. SQL statistics are collected every 10 minutes from V$SQL, plan changes are detected from V$SQL_PLAN, and the Radar Engine's 75+ detectors and Scops AI's 40+ tools work on that data. Where ADDM writes a report once an hour, Radar reads the database live and knows the usual level of every hour.

Pack featurePackIn Scops, without the pack
ASH, V$ACTIVE_SESSION_HISTORYDiagnosticsSession samples every 5 seconds, kept in the Scops repository; Activity chart by wait class, statement, object and session
AWR report, DBA_HIST_ viewsDiagnosticsMetrics and SQL statistics collected by Scops and kept per database, with the usual level of every hour learned by Radar
ADDMDiagnosticsRadar Engine: 75+ detectors, live and hourly, with the cause named in the finding; Scops AI for the question behind it
Real-Time SQL MonitoringTuningThe SQL page: executions, plan, plan changes and statistics per statement, every 10 minutes
SQL Tuning Advisor, SQL profilesTuningBehind the pack switch; SQL plan baselines, which need no pack, are the first choice of the plan fix

The pack switch in Scops is per database and off by default. Turning it on asks for a license confirmation and records who turned it on and when, and it enables the SQL Tuning Advisor, SQL Monitor, AWR plans, SQL profiles and the automatic plan fix for that database only. The License page then does the review for you: it lists the packs and options each database uses, flags a use that is new in the last 90 days and not marked licensed, or any use on Standard Edition, and counts the processor licenses of Enterprise Edition at cores × 0.5 and the sockets of Standard Edition 2.

Questions

How do I check whether the Diagnostics Pack is being used?
Query DBA_FEATURE_USAGE_STATISTICS for the AWR, ADDM, ASH, Baseline, Diagnostic and Tuning feature names with DETECTED_USAGES above zero, and read CONTROL_MANAGEMENT_PACK_ACCESS in V$PARAMETER. A value of DIAGNOSTIC+TUNING, the Enterprise Edition default, means every report and advisor is available and every use is recorded.

Does CONTROL_MANAGEMENT_PACK_ACCESS = NONE stop AWR snapshots?
No. It makes both packs unavailable, so AWR, ADDM and ASH reports and the advisors stop. The snapshots are a separate setting: DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS with an interval of 0 disables them, and STATISTICS_LEVEL = BASIC disables them along with many free features.

Can I query V$ACTIVE_SESSION_HISTORY without the pack?
No. Oracle's licensing manual says the view and its underlying table X$ASH are part of the Diagnostics Pack, as are all DBA_HIST_ views except six. V$SESSION, V$SESSION_WAIT, V$SQL and V$SYSSTAT need no pack, and Scops builds its own session history from them every 5 seconds.

Is the Automatic SQL Tuning Advisor a Tuning Pack use?
Yes, and it runs by default in every maintenance window. DBMS_AUTO_TASK_ADMIN.DISABLE for the sql tuning advisor client stops it; the statistics collection task, which needs no pack, is unaffected.

What does Scops read on my database?
V$ and DBA_ views through a read-only account with SELECT_CATALOG_ROLE, every 5 seconds for sessions and every 10 minutes for SQL statistics. It reads no pack object unless the per-database pack switch is on, which requires a license confirmation and is recorded.

Related

Sources