SolarWinds
Database Performance Analyzer (DPA)
Pinpoint database slowness with wait-time analysis across many engines.
Database Performance Analyzer (DPA) is SolarWinds' specialised database monitoring tool, and its defining technique is wait-time analysis. Rather than just reporting CPU or memory, DPA measures what queries are actually waiting on — disk I/O, locks, latches, memory, CPU — and attributes that wait time to specific SQL statements, programs, and times. This answers the operational question directly: which queries are slow, and what resource are they blocked on.
A time-and-motion study for the database: instead of noting the kitchen is busy, it records that the chef spent most of the shift waiting for one oven — telling you precisely what to fix.
Key Concepts
1
DPA is agentless (it queries the database's own performance views) and supports many engines — SQL Server, Oracle, MySQL, PostgreSQL, and others — including cloud-managed databases. It trends performance over time, baselines normal behaviour, flags anomalies, and recommends tuning (indexes, problematic SQL). For interviews, the key concept is wait-based analysis: it reframes "the database is slow" into "this query spent 70% of its time waiting on lock contention", which is far more actionable than host-level metrics alone.
2
What the interviewer is probing.
What the interviewer is probing.
3
1. "What makes DPA different from standard database monitoring?" *Probing:* the central idea.
*Stalls:* "Nothing." *Moves up:* wait-time analysis — it attributes time to what queries were
waiting on, rather than reporting resource counters.
1. "What makes DPA different from standard database monitoring?"
4
2. "Why is wait-time analysis more useful?" *Probing:* the argument. *Stalls:* "It is not."
*Moves up:* it points at the cause directly — a query waiting on a lock is a different fix from one
waiting on IO, and CPU graphs show neither.
2. "Why is wait-time analysis more useful?"
5
3. "What does it need to collect?" *Probing:* the practical detail. *Stalls:* "An agent." *Moves
up:* agentless polling of the database's own session and wait views, which is why it adds little
load.
3. "What does it need to collect?"
6
4. "What is the first thing you look at in it?" *Probing:* the method. *Stalls:* "The slowest
query." *Moves up:* total wait time by query over the period — the statement consuming the most
aggregate time, not the slowest single execution.
4. "What is the first thing you look at in it?"