OBIEEintermediate
Usage Tracking & Query Auditing
Explain how OBIEE captures query-level usage statistics for performance tuning, adoption analysis, and auditing.
Usage Tracking is OBIEE's built-in mechanism for capturing detailed statistics about every logical query executed — which user ran it, how long it took, how many rows it returned, which subject area and dashboard it came from, and whether it hit cache. It's a frequently underused feature in real deployments but a favorite interview topic because it demonstrates operational maturity.
It's a car's trip computer silently logging every drive — speed, distance, fuel used — so that later you can see which routes are wasting gas, without having to remember or guess.
Key Concepts
1
When enabled in NQSConfig.INI ([USAGE_TRACKING] ENABLE = YES;), the BI Server writes usage records either directly to a database table (direct-insert mode) or to flat files that are periodically loaded into a database via a sample ETL (file mode, safer under high load since it decouples writing from the live query path). The resulting S_NQ_ACCT table (the standard usage tracking sample schema) captures dozens of columns: SAW_SRC_PATH (dashboard/analysis path), START_TS, END_TS, ROW_COUNT, CUM_HIT_COUNT (query cache hits), QUERY_TEXT (optional and disabled by default for privacy/size reasons), user and role info, and the actual physical databases hit.
NQSConfig.INI[USAGE_TRACKING] ENABLE = YES;S_NQ_ACCTSAW_SRC_PATHSTART_TS
2
BI teams build a small "BI-on-BI" subject area against this table (Oracle ships a starter RPD extension for exactly this) so that admins can build dashboards showing top slow queries, most/least used dashboards, and cache hit ratios — genuinely closing the loop on "which reports need attention." It's also the audit trail regulators or security teams ask for: who accessed which data, when.
3
Interviewers like this topic because it shows whether you think about a BI platform as something you *operate*, not just *build*: usage tracking underpins capacity planning, catalog cleanup (retiring dashboards nobody uses), and prioritizing which aggregate tables or indexes to add next.