Home  ›  Blog  ›  Oracle Database Options Guide  ›  Feature-Usage Audit
Oracle · Self-Audit · Sub-guide

Oracle feature-usage audit — read the evidence before LMS reads it to you.

Oracle's auditors do not guess what options you use — they query a view called DBA_FEATURE_USAGE_STATISTICS, which the database populates automatically. You can run the same query today. A feature-usage self-audit reads exactly what LMS will read, surfaces accidental activations while you still have time to remediate, and turns an audit into a confirmation exercise. This sub-guide of the Oracle Database options guide shows what to query, how to read it, and how to avoid the common false positives.

Updated: June 2026 Reading time: 11 min Audience: DBA, ITAM, Compliance
Analytics dashboard showing usage statistics
The short answer

What is an Oracle feature-usage audit?

It is a self-run query of the data dictionary views that Oracle's LMS team uses to detect option and management-pack use — chiefly DBA_FEATURE_USAGE_STATISTICS and DBA_HIGH_WATER_MARK_STATISTICS. The database samples feature use roughly weekly and writes a row for each detected feature, with first- and last-usage dates and a count of detections. Running these queries yourself, on every instance, on a quarterly cadence, is the single most effective Oracle compliance control there is — because it gives you the same picture as the auditor, months earlier.

The core query

Which query shows option and pack usage?

Start with the feature-usage view. This returns every feature the database has recorded, whether it is currently used, when it was first and last seen, and how many times it was detected:

SELECT name, version, detected_usages, currently_used, first_usage_date, last_usage_date FROM dba_feature_usage_statistics WHERE detected_usages > 0 ORDER BY name;

For count-metered options such as Multitenant, also read the high-water-mark view, which records the peak count Oracle measured:

SELECT name, highwater, last_value, description FROM dba_high_water_mark_statistics ORDER BY name;

Run both against every instance — production, test, development, and DR — because feature use on any of them creates a licence question. A single consolidated extract across the estate is what an LMS engagement assembles; building it yourself first is the whole point. The full per-feature trigger list is in options & management packs, and engineered systems add the wrinkles covered in the Exadata guide.

Want the consolidated extract built and read for you?

We run the LMS-equivalent scripts across the whole estate and interpret every row.

Contact Us →
Reading the rows

How do you interpret the results?

Each field answers a different licensing question. Read them together — a feature with detected use but CURRENTLY_USED = FALSE and an old last-usage date is a far weaker claim than one in continuous use.

FieldQuestion it answersWhat to look for
NAMEWhich option/pack?Map to the licensable feature, not the marketing name
DETECTED_USAGESHow many times detected?1 is enough to open a claim; high counts imply continuous use
CURRENTLY_USEDIn use now?FALSE + old date = remediation candidate
FIRST_USAGE_DATEWhen did it start?Sets the earliest claim boundary
LAST_USAGE_DATEWhen did it last occur?Recent = live deployment; old = historical accident
HIGHWATER (HWM view)Peak count?Drives Multitenant and session-metered options
False positives

Which feature-usage results are false positives?

This is where a self-audit earns its keep. The view over-reports: it flags features that are technically detected but not licensably "used," and Oracle's auditors will happily count them if you do not contest them. Knowing the common false positives is the difference between a clean position and an inflated claim.

Reported featureWhy it can be a false positiveAction
Advanced CompressionBasic table compression and some backup compression are free; the view can over-flagConfirm the compression type actually used
PartitioningSample data, Oracle-supplied schemas, or dropped tables may linger in historyDistinguish live partitioned objects from historical rows
Real Application TestingSome SQL Performance Analyzer paths are detected even when not licensably usedVerify the specific feature invoked
SpatialCore Spatial is free since 19c; old rows may predate thatCheck version and the exact feature path
Diagnostic Pack (sample)A single automated sample is not the same as ongoing operational useWeigh detected_usages and dates together

None of these mean "ignore the row." They mean investigate before conceding. The discipline mirrors what we apply in Oracle audit defence: every line in an LMS finding is a claim to be tested, not an entitlement to be paid.

Get the Oracle Options & Management Packs Audit Guide.

The full query set, the false-positive reference table, and the quarterly self-audit checklist.

Get the guide →
Cadence

How often should you run a feature-usage audit?

Quarterly, at minimum, plus after any major change — a database upgrade, a consolidation project, a new tool rollout, or an OEM patch. The reason is that the view accumulates: once a row is written it persists, so the only way to catch an accidental activation while remediation is still cheap is to look before it ages into "continuous use." Customers who run this every quarter remediate accidents in days; customers who run it once, under audit, are negotiating from a record they have never seen.

TriggerWhy re-runWindow
Routine cadenceCatch slow accumulationEvery quarter
Database upgradeFree-tier limits and defaults change between releasesBefore and after
Consolidation / MultitenantPDB high-water mark movesAt cutover
New monitoring/toolingTools silently invoke packs and optionsAt rollout
Audit notice receivedMatch Oracle's extract before you respondImmediately
Posture

What does a defensible self-audit produce?

A dated, estate-wide extract of feature usage; a licence-or-remediate decision recorded against every flagged feature; evidence for every false positive you have contested; and the configuration controls (such as CONTROL_MANAGEMENT_PACK_ACCESS) that prevent recurrence. That package is both your internal compliance position and your opening response if an audit letter ever arrives — and it is exactly what an LMS team cannot improve on, because it is the same data, read first.

FAQ

Feature-usage audit questions, answered.

Does querying DBA_FEATURE_USAGE_STATISTICS alert Oracle?
No. It is a standard read-only data dictionary view in your own database. Querying it is invisible to Oracle and is the foundation of an internal compliance baseline.
Can I clear historical usage rows?
Not reliably, and attempting to tamper with the evidence is the wrong move. The defensible path is to remediate the underlying use, document non-use going forward, and contest false positives — not to erase the record.
How often does the database sample feature usage?
Roughly weekly by default. That is why a single accidental click can appear as a detected use within days, and why a quarterly review catches it before it ages into apparent continuous use.
Is the view enough on its own?
It is the core, but pair it with DBA_HIGH_WATER_MARK_STATISTICS for count-metered options and with a manual check of the false-positive features. Reading one view in isolation is how claims get over-counted.

Found a row you can't explain?
We read the evidence with you.

Our Oracle practice runs the LMS-equivalent extract across your estate, contests the false positives, and builds the remediation plan — before any audit letter lands. Our Oracle audit defense team holds that line if a letter does arrive. $1.8B+ documented savings · 68% average audit-claim reduction · buyer-side only since 2016.

The Compliance Brief

Weekly compliance intelligence for IT leaders.