Now openThe whole vendor lifecycle in one workspace. Benchmarking, negotiations, contracts, invoices, renewals. Free 30 day trial, no card.Start the trial →
Now openThe whole vendor lifecycle in one workspace. Benchmarking, negotiations, contracts, invoices, renewals. Free 30 day trial, no card.Start the trial →
Editorial photograph of an enterprise boardroom interior
Oracle · Feature Usage Sampling · Audit Defense

The Sampling Gap: What Oracle Feature Usage Tracking Misses and Why It Cuts Both Ways

Oracle's feature usage view is not a continuous log. It is a weekly sample, and that single design fact drives both your unexpected exposure and, when you know how to use it, your defense.

Contact Us Oracle Hub
500+Enterprise clients
$2B+Under advisory
Industry Recognized
500+ Enterprise Clients
$2B+ Under Advisory
11 Vendor Practices
100% Buyer Side Independent

Oracle's feature usage view is not a continuous log. It is a weekly sample, and that single design fact drives both your unexpected exposure and, when you know how to use it, your defense.

The mechanic that decides your bill: weekly, not continuous

Start with the fact that most buyers never learn until an audit: DBA_FEATURE_USAGE_STATISTICS (DBAFUS) is refreshed by a hidden internal job roughly once per week. It is not a real time monitor and it is not a transaction log. Oracle's own reference documentation defines the columns around a sampling model: TOTAL_SAMPLES is the number of times the system woke up and checked, DETECTED_USAGES is the number of samples in which usage was found, and CURRENTLY_USED reflects only the most recent sample. The FIRST_USAGE_DATE and LAST_USAGE_DATE fields are sample times, not event times.

That distinction is the whole article. Because the check happens weekly, anything that starts and ends inside a seven day window can be entirely invisible, and anything caught once in a sample stays in the permanent history forever. In 25 years across the table from this vendor, I have watched both sides of that coin land in the same negotiation: Oracle counting a feature it caught once, and a customer unable to prove a feature they used briefly was never deployed. The pillar page on how DBA_FEATURE_USAGE_STATISTICS becomes an audit bill covers the mechanics end to end. This subpage isolates the sampling gap itself, because it is the least understood and the most exploitable part of the view.

The check happens weekly. Anything that starts and ends inside seven days can be invisible, and anything caught once stays in the history forever.

Side one: usage between samples still counts against you

The exposure risk is not that the sample is too infrequent to catch you. It is that a single hit in a single sample creates a permanent, non zero DETECTED_USAGES row that Oracle treats as proof of deployment. Consider the classic drift scenario documented by advisory sources: a DBA enables Advanced Compression for a one time migration on a Tuesday and disables it Friday. Your own quarterly discovery script never sees it. But if the weekly internal job happened to wake up during that window, the feature reads as used, and it reads as used for the rest of the database's life.

Here is why that turns into six figures instead of an apology. Database options are licensed across the entire database, not just the cores that touched the feature. An option installed on a 16 processor database must be licensed for all 16 processors whether or not every core ever invoked it. So a single enable action on a large server, caught in one weekly sample, is not a small finding. It is Partitioning at $11,500 per processor times your full core count. On a 16 processor box that is $184,000 at list, plus 22 percent annual support, plus backdated support if Oracle argues historic use. Partitioning sits among the three most common audit findings for exactly this reason, alongside Diagnostics and Tuning Pack usage.

Option List price per processor (2026) Exposure on a 16-proc DB (list) Annual support at 22%
Partitioning$11,500$184,000$40,480
Advanced Compression$11,500$184,000$40,480
Advanced Security$15,000$240,000$52,800
Active Data Guard$11,500$184,000$40,480
Diagnostics Pack$7,500$120,000$26,400
Tuning Pack (requires Diagnostics)$5,000 (+$7,500)$200,000 combined$44,000
Multitenant$17,500$280,000$61,600
RAC$23,000$368,000$80,960

Read the table as the price of one careless enable action caught in one weekly sample. The metric rule is strict: each option is priced on the same metric as the underlying Database Enterprise Edition license (currently $47,500 per processor). If Database is per processor, so is every option. The sampling gap does not reduce that math. It only decides whether the sample happened to catch the event.

Side two: a FALSE reading is not a safe harbor

Now the mirror image, and the part customers get dangerously wrong. Because CURRENTLY_USED reflects only the most recent sample, a feature that genuinely runs on a monthly cycle can read FALSE on the day you look. Buyers see FALSE, exhale, and assume they are clear. They are not. A FALSE value means the feature was not detected active at the precise moment the last sample ran. It says nothing about scope. Oracle calculates the compliance obligation on the entire period covered by non zero DETECTED_USAGES, not on the current flag. The full comparison of these two columns lives in the subpage on DETECTED_USAGES versus CURRENTLY_USED and why auditors weigh them differently.

The practical takeaway: never build a defense on CURRENTLY_USED. The history is the finding. A priced option invoked once, two years ago, still sits in the usage history with a non zero detected count, and Oracle's position holds regardless of what the current flag says. If you run your own report and see FALSE across the board, you have proven exactly one thing: nothing fired in the last sample window. That is not the same as clean.

Never build a defense on CURRENTLY_USED. A FALSE reading means one sample missed the feature, not that the feature is out of scope.

Where the sample lies in your favor: false positives and script bugs

The sampling model also produces readings that overstate your liability, and this is where buyer-side leverage lives. Oracle's own options_packs_usage_statistics.sql carries an explicit disclaimer: the reports are informational only, do not represent your license entitlement, and may indicate false positives. That sentence is Oracle admitting, in writing, that its own detection is not authoritative. Use it.

  • The LMS script has 14 documented bugs (My Oracle Support Doc ID 1309070.1). Every one of them is a documented reason a finding may be wrong.
  • A real audit case recorded more than 700 false usages of Advanced Compression driven by unpublished BUG 17164904. That is a fabricated seven figure exposure at list, entirely on Oracle's error.
  • BUG 16088534: RMAN default backup BZIP2 compression is misreported as Advanced Compression. If you run default RMAN backups and see a Compression row, challenge it before you concede a dollar.
  • Scripts cannot separate a licensable trigger from a non-licensable one. They tell you a feature fired, not whether that specific invocation requires a license.

The defensive posture is simple to state and hard for auditors to counter: the burden of proof for an option purchase sits with the vendor whose own tool disclaims accuracy and carries 14 known defects. When Oracle presents a finding, ask which specific trigger fired, whether that trigger is on the documented bug list, and whether the invocation is a licensable use or an included feature. Snapshot Standby is included; Far Sync requires Active Data Guard. Real Application Security is included; Real Application Testing is extra cost. Auditors count rows. Your job is to force them to prove each row is a licensable event, not a detected string.

The blind spot on Oracle's side: what the sample never records

There is a third category that neither party likes to discuss out loud. Certain feature triggers that invoke a licensable option or pack are not recorded in DBAFUS at all. So the view is neither complete nor infallible. This matters two ways. First, do not treat a clean view as a guarantee of compliance across your estate, because some licensable use never lands there. Second, and more useful in negotiation, it undermines any Oracle claim that the view is the authoritative single source of truth. It is a sample of a subset. That framing is worth rehearsing before any audit interview.

The most self-inflicted version of this is the Diagnostics Pack. Automatic Workload Repository (AWR) snapshots run by default, which silently activates the pack in more than 40 percent of enterprise databases per advisory data. Worse, the act of running an AWR or ASH report is itself a detectable event the LMS team can find. You can generate a six figure finding by troubleshooting a performance problem. The forward fix is a single parameter, covered in the guide on setting CONTROL_MANAGEMENT_PACK_ACCESS to stop Diagnostic and Tuning Pack findings going forward. Set it to NONE on any database you have not licensed for those packs, and set it before, not after, the audit notice arrives.

How auditors behave when the sample is sparse

When TOTAL_SAMPLES is low or DETECTED_USAGES is one or two, you have the strongest possible fact pattern for a touch, not a deployment. This is where FIRST_USAGE_DATE and LAST_USAGE_DATE earn their keep. If both dates are the same, or a single sample apart, the feature was invoked once and not run as a production workload. The technique is set out in the subpage on using FIRST_USAGE_DATE and LAST_USAGE_DATE to prove a feature was touched once, not deployed. Auditors will still open with the full-price position because that is the anchor. Your response is the sample history: one detected usage, identical first and last dates, no continuity, likely a test or an accidental default.

Expect the standard auditor moves. They will argue that a single detection proves the option was installed and available, and that availability across the database is what triggers the license, not continuous use. That argument has force for options that are truly deployed. It has far less force for a one-time invocation, and it collapses entirely if the trigger is on the documented bug list. There is also a related but distinct trap: Partitioning shows as used even after you drop the partitioned tables, because the historic detection persists. When both the sparse-sample argument and the historic-persistence argument are on the table, the outcome is a negotiation, not an invoice. Treat it that way.

A single detected usage with identical first and last dates is a touch, not a deployment. Make Oracle prove otherwise, row by row.

What you should actually do

Run the discovery yourself before Oracle does. There is no benefit to seeing your own data for the first time in an LMS draft finding. The mechanics of running it in advance are in the guide on running the feature usage report yourself before Oracle's LMS script does. Do this quarterly, not annually, because the weekly sample means drift accumulates silently between reviews.

  • Set CONTROL_MANAGEMENT_PACK_ACCESS to NONE on every database not licensed for Diagnostics or Tuning. This is the single highest-value preventive control and it costs nothing.
  • Capture your own DBAFUS extracts quarterly and archive them. A dated record you control is your defense against both false positives and Oracle's historic-use argument.
  • For every non-zero detected row, classify it before an audit: licensable versus included, deployed versus touched, real versus documented bug. Do the triage while you have time, not under a 30 day audit response clock.
  • Never concede a finding on the strength of CURRENTLY_USED alone, in either direction. TRUE is not your only exposure and FALSE is not your safe harbor.
  • Where a finding rests on a documented bug (Doc ID 1309070.1), put the bug number in writing and refuse the line item. Oracle's own disclaimer that the data may show false positives is your citation.

The broader context, including the six other findings that hide in the same view, is mapped in the overview of hidden Oracle audit risks. The sampling gap is the thread that runs through most of them. Understand that the view is a weekly sample of a subset, disclaimed by its own author and carrying 14 known defects, and you stop treating an Oracle finding as a fact and start treating it as an opening position. That shift is worth more in a negotiation than any script you can run.

Frequently asked questions

How often does Oracle's feature usage view update?

By default, roughly once per week, driven by a hidden internal job. It is a sample, not a continuous log. You can force a refresh with the undocumented DBMS_FEATURE_USAGE_INTERNAL.EXEC_DB_USAGE_SAMPLING procedure referenced on My Oracle Support, but the standard cadence is weekly.

If CURRENTLY_USED shows FALSE, am I safe from a license claim?

No. FALSE means the feature was not detected active in the most recent weekly sample. Oracle calculates the obligation on the entire period represented by non-zero DETECTED_USAGES, regardless of the current flag. A feature that runs monthly can read FALSE the day you look and still generate a finding.

Can Oracle charge me for a feature I only enabled once for a few days?

Oracle's position is yes if the sample caught it, because a single detection creates a permanent non-zero DETECTED_USAGES row and options are licensed across the whole database. Your defense is FIRST_USAGE_DATE and LAST_USAGE_DATE: identical or near-identical dates indicate a touch, not a deployment, which is a negotiation, not an invoice.

Are the feature usage results ever wrong in the customer's favor?

Yes. Oracle's own LMS script disclaims accuracy and carries 14 documented bugs (My Oracle Support Doc ID 1309070.1). One recorded case showed over 700 false Advanced Compression usages from an unpublished bug, and RMAN default backup compression is misreported as a licensable option. Challenge every row that may be a documented false positive.

What is the fastest way to prevent Diagnostics and Tuning Pack findings?

Set CONTROL_MANAGEMENT_PACK_ACCESS to NONE on any database you have not licensed for those packs. AWR snapshots run by default and silently activate the Diagnostics Pack in more than 40 percent of enterprise databases, and even running an AWR report is a detectable event. Set the parameter before an audit notice, not after.

How much can a single missed enable action actually cost?

At 2026 list prices, Partitioning or Advanced Compression at $11,500 per processor on a 16-processor database is $184,000, plus 22 percent annual support of about $40,480. Options are licensed for every core in the database, not just the cores that used the feature, so the sampling gap turns one weekly detection into a six-figure exposure.

Free White Paper

What Oracle ERP Cloud really costs per employee

Oracle prices Fusion ERP Cloud per employee, not per user, which inflates true cost. The buyer side guide to module economics and the modernization discount.

Gated with a work email on the download page. No sales follow up you did not ask for.

Get the White Paper →
Independent, buyer side. We never share your details with vendors.
Run a software spend health check against your Oracle estate in under five minutes.
Open the Tool →
Deep Library

More on this topic.

Oracle Hub →
Oracle Database Feature Usage Tracking: How DBA_FEATURE_USAGE_STATISTICS Becomes an Audit Bill
Oracle · Guide
Oracle Database Feature Usage Tracking: How DBA_FEATURE_USAGE_STATISTICS Becomes an Audit Bill
The full guide this article belongs to.
Guide
Partitioning Shows as Used Even After You Drop the Partitioned Tables: Why and What to Do
Oracle · Deep dive
Partitioning Shows as Used Even After You Drop the Partitioned Tables: Why and What to Do
Another angle on the same decision.
Guide
DETECTED_USAGES vs CURRENTLY_USED: Reading the Two Columns Oracle Auditors Weigh Differently
Oracle · Deep dive
DETECTED_USAGES vs CURRENTLY_USED: Reading the Two Columns Oracle Auditors Weigh Differently
Another angle on the same decision.
Guide
Adobe Acrobat AI pricing in 2026. What the add on actually costs.
Oracle
Adobe Acrobat AI pricing in 2026. What the add on actually costs.
Adobe Acrobat AI Assistant is a paid add on in 2026. Individual lands near $7 per month. T
Guide
Azure OpenAI SLA and support. Uptime is not the whole story.
Oracle
Azure OpenAI SLA and support. Uptime is not the whole story.
Azure OpenAI's 99.9 percent SLA covers availability, not latency or quality. PTU sizing, s
Guide
Massachusetts Public University System.
Oracle
Massachusetts Public University System.
Massachusetts public university system cuts SAP licensing costs 31 percent through central
Guide
Editorial boardroom interior

The advisor your vendors do not want.

500+ enterprise clients. 11 vendor practices. Industry recognized. One conversation can change what you pay for the next three years.

Stay ahead of Oracle licensing changes.

One buyer side briefing a week. Renewal signals, audit moves, and the levers that work. No vendor spin.