Google CloudCommitments5 min read

Review BigQuery reservation autoscale slot seconds by minute

Sources checked September 7, 202610 minutes
On this page
THE SHORT ANSWER

Run this read-only review to identify BigQuery reservations with positive autoscale slot seconds in the last day, then compare their minute-level capacity and assignment fields before investigating further.

Why this is worth a look

INFORMATION_SCHEMA.RESERVATIONS_TIMELINE provides one row for each minute of every reservation in the last 180 days. Its period_autoscale_slot_seconds field is the total slot seconds charged by autoscale for that minute. Filtering period_start keeps the partitioned metadata read efficient, while max_slots, slots_assigned, slots_max_assigned, ignore_idle_slots, and scaling_mode provide context for each positive-usage row. This review reports slot seconds, not currency or per-second state.

Start with this query

SQL

Read-only BigQuery SQL for the last day. Run it in the same region as the region-qualified INFORMATION_SCHEMA view with bigquery.reservations.list permission. Results use slot-seconds as the unit and include one row per matching reservation minute.

Minute-level autoscale slot seconds by reservation
WITH reservation_windows AS (
  SELECT
    period_start,
    reservation_id,
    reservation_name,
    project_id,
    period_autoscale_slot_seconds,
    max_slots,
    slots_assigned,
    slots_max_assigned,
    ignore_idle_slots,
    scaling_mode,
    is_creation_region
  FROM `region-us.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE`
  WHERE period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
    AND CURRENT_TIMESTAMP()
)
SELECT
  period_start,
  reservation_id,
  reservation_name,
  project_id,
  period_autoscale_slot_seconds,
  max_slots,
  slots_assigned,
  slots_max_assigned,
  ignore_idle_slots,
  scaling_mode,
  is_creation_region
FROM reservation_windows
WHERE period_autoscale_slot_seconds > 0
ORDER BY period_start DESC, reservation_id;

How to confirm it

  1. 01

    Set the region and location

    Replace region-us with the region qualifier for the reservation timeline you want to read. Run the query in that same region. If the reservations belong to another administration project, add its project ID before the region-qualified view.

  2. 02

    Run the last-day review

    Execute the SELECT statement as read-only SQL. The time window runs from one day before the current timestamp through the current timestamp, and period_start remains filtered for partition efficiency.

  3. 03

    Filter for charged minutes

    Read rows where period_autoscale_slot_seconds is greater than zero. This field is the autoscale slot seconds charged for that one-minute period, so the result shows positive minute-level autoscale usage.

  4. 04

    Compare reservation context

    Review reservation_name, max_slots, slots_assigned, slots_max_assigned, ignore_idle_slots, and scaling_mode alongside each positive row. Use the results to choose reservations or minutes for a deeper follow-up.

Before making changes

Assume the region qualifier and query execution location match, the last-day window is the intended scope, and the caller has bigquery.reservations.list on the project (for example through BigQuery Resource Viewer). The result is reservation metadata with minute-level autoscale slot seconds. It does not show per-second autoscale_current_slots, calculate currency, or attribute a billing change to a reservation.

Ignore this review if the workload does not use BigQuery reservations, the caller lacks bigquery.reservations.list, or the question requires per-second autoscale state or billing amounts rather than minute-level slot seconds.

Primary sources