Skip to main content
Metrics type: Key MetricsCategory: Executive Overview

At a glance

The live throughput of your Databricks SQL warehouses, expressed as queries executed per hour. This is the heartbeat metric of the lakehouse’s analytics layer: it tells a platform team how much demand the warehouses are serving right now, and it is the denominator behind almost every other SQL card. A healthy reading is one that tracks your business rhythm: rising through the morning, peaking with the reporting window, quiet overnight. A sudden drop can mean an outage upstream (no one can query because the warehouse is down or a dashboard is broken); a sudden surge can mean a runaway dashboard, a misconfigured polling loop, or genuine demand that is about to saturate capacity.

Calculation

Vortex IQ reads the query-history feed for the monitored warehouses and counts query executions whose start time falls within the trailing 60-minute window, then reports that count as the live per-hour rate:
Because the window is rolling rather than a fixed clock hour, the number updates continuously and reflects the most recent demand rather than waiting for an hour boundary. Both completed and currently-running queries are counted by their start, so a long-running query is included from the moment it begins, not only when it finishes. System-generated and metadata queries can optionally be filtered out so the rate reflects genuine analytical load rather than the warehouse’s own housekeeping (catalogue lookups, schema introspection from BI tools). Where the connector is configured to exclude these, the headline tracks user-driven demand, which is the more useful executive signal. The card aggregates across all monitored warehouses by default; the drill-down splits the rate per warehouse so a team can see which warehouse carries the load.

Worked example

A platform team runs three SQL warehouses: bi-interactive (analyst dashboards), embedded-storefront (a customer-facing analytics widget) and etl-adhoc (engineers’ manual queries). The normal weekday curve peaks around 4,000 queries/hour mid-morning. Snapshot taken on 21 Apr 26 across the morning. At 10:15 the live rate jumps to 12,260 q/h, more than 3x the normal peak, driven almost entirely by embedded-storefront. The platform engineer investigates.
The surge is not real demand: a storefront deploy accidentally set the analytics widget to poll ten times more often, multiplying identical queries. The decisions:
  1. Trace the surge to its source. The throughput card flagged that demand jumped; the per-warehouse drill-down said where (embedded-storefront); the storefront deploy log said why (poll interval change). Roll back or hotfix the poll interval.
  2. Contain the cost while fixing. The runaway polling doubled DBU on that warehouse and pushed saturation to 92%. A short-term mitigation is to cap the widget’s query rate or add a result cache so identical polls do not re-execute.
  3. Add a guard rail. A polling widget should never query the warehouse directly at high frequency; a 30 to 60 second materialised cache in front of it would make a future mis-config harmless.
Two takeaways:
  1. Throughput is the alarm; the other SQL cards are the diagnosis. This card has no threshold of its own because the right response depends entirely on why it moved. It pointed the team at the right warehouse; SQL Warehouse Saturation % and SQL Query Latency p95 (ms) sized the impact.
  2. A surge of identical queries is a cost problem before it is a capacity problem. The warehouse autoscaled to cope, so users barely noticed, but the DBU bill doubled silently. Watch this card alongside DBU Burned (24h) so demand surges do not turn into surprise spend.

Sibling cards

Reconciling against the source

Where to look in Databricks:
Open SQL → Query History and filter to the warehouse and a one-hour window; the row count is the direct equivalent of this card. Run SELECT count(*) FROM system.query.history WHERE start_time >= now() - interval 1 hour (where the system schema is enabled) for an account-level count. Each warehouse’s Monitoring tab shows a “Completed queries” series over time, the visual form of the same throughput.
Why our number may legitimately differ from the Databricks UI: Cross-connector reconciliation:

Known limitations / FAQs

Why does this card have no alert threshold? Because there is no universally “bad” throughput. A drop could be an overnight lull or an outage; a surge could be a successful campaign or a runaway dashboard. The right response depends entirely on the cause, so the card surfaces the signal and the sibling cards (saturation, latency, error rate, DBU) tell you whether to act. Treat a sharp deviation from your normal curve as the prompt to investigate, not the number itself. Is a higher queries-per-hour better? Not inherently. More queries can mean more analysts getting value from the lakehouse, or it can mean an inefficient dashboard re-running the same query a hundred times. Read throughput alongside latency and DBU: high throughput at low cost and latency is healthy; high throughput driving cost and queuing is a problem to investigate. The card shows zero but I know people are querying. Why? Two common causes: the query-history feed has lagged or paused (a transient API issue that resolves at the next poll), or the queries are running on a warehouse that is not in the monitored set. Confirm which warehouses the connector is scoped to. A genuine zero during business hours, with sessions still active, is itself a signal worth investigating as a possible warehouse stall. Does this count queries run from notebooks and jobs, or only SQL warehouses? This card counts queries executed through SQL warehouses (the query-history feed). Spark SQL run inside notebooks on all-purpose or job clusters is a different execution path and is not included here; monitor that compute through the cluster and job cards instead. How does the rolling window affect what I see during a spike? Because the window is the trailing 60 minutes, a sharp one-minute burst takes a full hour to fully age out of the count, so the elevated rate decays gradually after the burst ends rather than dropping instantly. This is intentional, it reflects the load the warehouse genuinely carried, but it means the live rate can look elevated for a while after the underlying spike has passed. Can I see which user or dashboard is generating the queries? The headline is an aggregate rate, but the per-warehouse drill-down narrows the source, and Databricks Query History itself attributes each query to a user, source, and statement. When a surge appears, the workflow is: this card tells you the rate jumped, the drill-down tells you which warehouse, and Query History tells you which client. For deeper attribution, ask Ask Viq to break the surge down by source. Why count by query start rather than completion? Counting by start means a long-running query is reflected in throughput the moment demand arrives, not an hour later when it finishes. For a live throughput gauge, that is the honest reading: the warehouse is carrying that work now. A completion-based count would understate live demand whenever queries are slow.

Tracked live in Vortex IQ Nerve Centre

SQL Queries per Hour (live) is one of hundreds of KPI pulses Vortex IQ tracks across Databricks and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.