OBIEEintermediate
BI Server (NQSServer) Query Processing
Explain how the BI Server turns logical SQL into an optimized physical query plan, including navigation, aggregate awareness, and federation.
The BI Server is the component that makes OBIEE's abstraction layer valuable: analysts write against a friendly business model, and the server figures out the cheapest, correct way to satisfy that request against whatever physical sources are registered. This is the part of the architecture most heavily tested in senior interviews because it's where the real engineering happens.
It's like a GPS route planner: you say "get me downtown," and it silently chooses the highway, a shortcut through side streets, or a combination — you never see the routing logic, only the fastest path taken.
Key Concepts
1
When a logical SQL statement arrives, the BI Server's Query Compiler parses it against the metadata in the RPD, resolves logical columns to their business-layer mappings, and evaluates every logical table source (LTS) that could satisfy the request. It then runs through navigation rules — content levels, aggregate tables, fragmentation — to pick the most efficient combination of physical tables. This is aggregate navigation in action: if a query only needs data at the monthly/region grain and an aggregate table exists at that grain, the server routes to the smaller table instead of the full-grain fact.
Query Compilernavigation rules
2
Once a plan is chosen, the Query Execution Engine generates physical SQL per data source and dispatches it. If a single logical request spans multiple physical databases (a federated query), the BI Server executes sub-queries against each source and performs the final join/aggregation itself in memory — this is powerful but expensive, so interviewers like to probe whether you know it's a last resort, not a design goal.
Query Execution Engine
3
The server also manages the query cache (result cache), evaluates whether a new request can be satisfied from a cached result set (including cache seeding and cache purging events), and enforces row-level and object-level security defined in the RPD before ever returning data. Understanding this pipeline — compile, navigate, execute, cache, secure — is what separates someone who's used OBIEE from someone who can debug it.
query cache