Prepare and test your skills

Prepare and test your skills

Design and management of reservations for predictable performance is the use of dedicated slot pools to isolate critical workloads from shared capacity. BigQuery (opens in a new tab) reservations replace pay-per-query shared capacity with a bucket of slots created in an administration project and shared by assigning projects, folders, or organizations to it. Queries from assigned projects flow to the reservation's slot pool for execution, so production and deadline-driven work does not compete with ad hoc work.
Slots as isolated compute capacity are the units of computational power that execute BigQuery queries independently from storage size. BigQuery separates compute, memory, and storage into independently managed services, so storage can scale to dozens of petabytes in Google's distributed file system without requiring more compute. Compute slots connect to memory through a remote distributed service over Google's petabit network, and Google manages all underlying infrastructure. Capacity planning therefore centers on choosing the proper slot quantity and placing those slots into reservations.
Because storage growth does not consume query slots, a reservation decision isolates query performance from data volume. Stored data remains compressed, encrypted, and replicated independently while queries draw execution resources from the reservation. This separation lets administrators increase concurrency and throughput by adding slots without resizing storage or copying data.
Reservations and assignments are two linked objects that together guarantee capacity for assigned workloads. The reservation holds the slot capacity, and the assignment binds a project, folder, or organization to that reservation for execution. Queries issued from an assigned project flow to the assigned reservation, and shuffle and execution resources are then drawn from that reservation rather than from the shared on-demand pool.
Administrators can dynamically create, resize, and delete reservations to match changing demand, but a reservation with assignments cannot be deleted until its assignments are removed. Shuffle size quota (opens in a new tab) is computed per-reservation and sliced across the projects assigned to that reservation, so noisy work in one project affects the shared reservation quota. Monitoring slot use and query performance by organization, folder, or reservation allows administrators to observe contention and decide when to split workloads into separate reservations.
On-demand versus capacity-based pricing is the choice between paying for bytes scanned from a shared pool and paying for dedicated slots in a reservation. The model determines how queries obtain slots, how costs accrue, and what concurrency limits apply.
| Model | How capacity is obtained | Cost basis |
|---|---|---|
| On-demand pricing | Queries draw from the BigQuery shared resource pool with fixed per-project query-processing capacity | Pay for bytes scanned by each query |
| Capacity-based pricing | Queries draw from dedicated slots in an assigned reservation purchased by the organization | Pay for purchased query-processing capacity |
On-demand pricing fits variable or exploratory work because no capacity is provisioned in advance, but it is limited to 2,000 slots per project and shares performance characteristics with other tenants. Capacity-based pricing fits high-demand, mission-critical, or deadline-driven workloads because dedicated slots isolate performance and support higher concurrency. Choose capacity-based reservations when predictable latency, guaranteed concurrency, or shuffle headroom matters more than paying only for bytes scanned.
Exam tip: On-demand projects are capped at 2,000 slots; exceeding that capacity requires switching to the capacity-based model with reservations.
Concurrency, queuing, and fair sharing describe how concurrent queries share slots and when queries wait for resources. BigQuery supports three workload management controls for balancing immediacy and throughput:
When many queries run concurrently, BigQuery runs queries in parallel and queues additional queries to run when resources free. As queries start and finish, BigQuery redistributes slot resources fairly between new and running queries, so performance depends on the number of concurrent queries rather than submission order. Batch priority therefore increases effective concurrency because more batch queries can be queued than interactive queries, and spreading high-volume interactive work across projects or converting it to batch reduces pressure on the interactive queue limit, which cannot be increased.
Scaling reservations to protect performance means increasing reservation size to resolve queuing delays, shuffle failures, and capacity exhaustion. Shuffle errors indicating exceeded disk and memory for shuffle operations are resolved by increasing the reservation, optimizing query logic, or reducing query concurrency and materialization of intermediate results. High-volume interactive workloads that hit queuing limits are resolved by increasing slots in the reservation, switching from on-demand to reservations, spreading work across projects, or using batch priority jobs.
Purchasing and holding reservation capacity in advance also protects recovery and peak scenarios. Unless redundant slots are purchased in the recovery region in advance, restoring or failing over there can incur additional delay while capacity is provisioned. The tradeoff is between flexibility and guarantee: dynamically created reservations can be adjusted quickly for short-term peaks, while advance-purchased dedicated capacity costs more to hold idle but guarantees that baseline concurrency and critical deadlines are met without waiting for shared resources.
Evaluation and selection of BigQuery Editions for different workloads is the decision of which billing model and performance tier matches concurrency, complexity, and governance needs. BigQuery (opens in a new tab) Editions billing is the capacity-based model for buying query compute in pools of virtual compute units. With on-demand billing, queries use a shared pool of slots and you pay per TiB of bytes processed with a fixed feature set, while with Editions billing you create autoscaling reservations assigned to projects and optionally add cheaper capacity commitments where slots for each edition come at their own price point.
On-demand billing compared with capacity-based Editions billing controls metering, capacity limits, cost control, and flexibility. On-demand billing meters TiB scanned with a minimum of 10 MiB per query and limits throughput to a predefined slot quota shared among queries in a project, up to 2,000 slots per project. Editions billing meters slot-hours for dedicated or autoscaling slots, starts at 50 slots per reservation, scales up to regional quota per reservation, and bills baseline or autoscaled slots with a 1-minute minimum by default or no minimum duration with BigQuery fluid scaling.
| Dimension | On-demand | Capacity-based with Editions |
|---|---|---|
| Usage model | Data scanned or processed by queries | Dedicated slots or autoscaling slots shared by multiple queries |
| Metering and charges | TiB processed, pay-as-you-go only, no charge management beyond quotas | Slot-hours consumed, predictable billing through baselines and optional monthly or annual commitments |
| Capacity | Up to 2,000 slots per project, no configuration required | Configurable per reservation up to regional quota, requires creating reservations (opens in a new tab) and assigning them to projects |
| Cost control and purchasing | Project-level or user-level quotas as hard cap, billed per project | Slot budget per reservation, centralized purchasing and allocation, unused slots shared automatically across other workloads |
The billing model applies per project, so the same organization can run some projects on on-demand billing and other projects on Editions billing. You can switch a project between models at any time, and combining models requires using multiple projects for query jobs. There is no charge for bytes processed when a query runs under the capacity-based model.
Slots, reservations, and commitments under Editions define how computational capacity is measured, pooled, and discounted. A slot is a virtual compute unit used by BigQuery to execute SQL queries and other job types such as load, export, query, and copy jobs. During execution, BigQuery automatically determines how many slots a query uses, and the number depends on data volume, query complexity, and available slots. Because slots determine underlying computational capacity, adding slots lets more concurrent queries run and lets complex queries run faster, while high wait times in execution plans plus high slot utilization signal a need for more slots.
Reservations are pools of slots that live in one administration project and are assigned to specific consumer projects, which lets an organization isolate workloads by team, department, or environment. For example, a reservation named prod can serve production workloads while a separate reservation named test serves testing, so test jobs do not compete for capacity that production workloads need. Reservations support autoscaling up and down with demand, and optional capacity commitments provide steady-state capacity at a discounted rate for predictable workloads. The benefits of using reservations for cost control (opens in a new tab) cluster around four outcomes:
Exam tip: Legacy flat-rate reservations and commitments function as Enterprise edition slots, with the same features as Enterprise edition commitments, and are labeled as flat-rate for pricing model and Enterprise for edition.
Aligning edition and model choice with workload characteristics starts from concurrency, complexity, and cost predictability. Capacity-based Editions billing is recommended for enterprise data warehouse workloads that run many concurrent reporting and extract-load-transform queries with predictable consumption, because a shared reservation absorbs peaks and commitments lower the price of steady-state use. On-demand billing fits variable, ad hoc, or low-volume workloads where no configuration and per-query byte billing outweigh the need for guaranteed capacity and centralized control.
Throughput and governance needs further shape the decision because on-demand throughput is capped by the shared per-project slot quota while Editions capacity is isolated by reservation assignment. A workload that needs production isolation, department-level chargeback, or central purchasing maps to separate reservations assigned to separate projects, with quotas and limits still applying to reservations. A workload that can tolerate variable billing and per-project control maps to on-demand with project-level or user-level quotas as a hard cap.
Right-sizing an edition reservation depends on historical slot use observed in Cloud Monitoring, audit logs, and the Workload management page in the Google Cloud console. The Slot estimator uses historical performance metrics to estimate organization capacity requirements, and ongoing monitoring of slot utilization, query times, and bytes scanned helps adjust baselines, autoscaling maxima, and commitment levels as concurrency grows. Regular review prevents both throttling from too few slots and overspending from too large a baseline.
Optimization of capacity allocation and autoscaling strategies is the practice of sizing slot pools to meet query demand while controlling cost under variable load. A BigQuery slot (opens in a new tab) is a virtual compute unit used to execute SQL queries and other jobs, and BigQuery automatically decides how many slots each query uses based on data volume, query complexity, and available capacity. Throughput for a project is limited by its slot quota, which is shared among all queries running in that project.
Autoscaling reservations with baseline and autoscaled slots combine guaranteed capacity with elastic burst capacity in one pool. BigQuery reservations are pools of slots allocated in the capacity-based billing model for an organization, department, or workload such as prod and test. Each reservation can combine baseline slots, which are always allocated, with autoscaled slots that are added or removed dynamically based on workload demand. Capacity-based usage is metered in slot-hours and billed for slots consumed in a minimum of one-second increments, with a one-minute minimum duration by default and no minimum duration when opting in to BigQuery fluid scaling.
Reservations are created under BigQuery Editions, where each edition has its own price point and feature set, and optional capacity commitments provide cheaper steady-state capacity. Every reservation starts at a minimum of 50 slots and can scale up to regional quota, while cost is controlled by configuring a budget expressed in slots for each reservation. This budget acts as the maximum cost cap, so a low baseline plus a higher autoscaling ceiling provides predictable billing for steady load while still absorbing bursts without manual resizing.
Slot utilization metrics and capacity estimation use historical consumption and performance signals to set baselines, ceilings, and commitments correctly. Regular monitoring helps determine total organizational need as workloads grow, because high slot utilization combined with high wait times in query execution plans indicates that additional slots are required. A practical reference from operations is reserving 4,000 slots to run about 100 medium-complexity queries concurrently, then adjusting upward when dashboards show sustained saturation.
Project and reservation slot usage can be observed in several complementary ways:
reservation_id field that identifies which reservation served each job.Custom charts and alert policies in Cloud Monitoring extend this foundation by notifying operators when conditions such as excessive query execution time occur. Reservation cost attribution adds an Analysis Slots Attribution line item in Cloud Billing data that reports slot-hours used per project without affecting invoice totals, which supports chargeback for shared reservations (opens in a new tab).
Idle slot sharing and reservation management control what happens to baseline capacity that a reservation is not actively using. When a workload does not use all of its dedicated slots, BigQuery automatically shares those unused slots across other workloads, so idle capacity improves overall throughput instead of sitting wasted. The BigQuery scheduler handles slot allocation within a reservation, which means capacity cannot be pinned to a single assignment and queries fairly share the reservation pool over time.
Reservations isolate workloads by assigning projects, folders, or organizations to a named pool, with child resources inheriting the parent assignment unless explicitly reassigned. A None assignment represents the absence of an assignment and forces those projects or folders to use on-demand pricing, which is useful for opting specific teams out of a centralized reservation. All reservations must reside in one administration project and are subject to quotas and limits, which enables centralized purchasing for the organization rather than buying slots per project.
Exam tip: The number of slots shown in use can appear higher than the reservation size because of how BigQuery provisions resources, but billing does not exceed the reservation slot count.
Hybrid on-demand and capacity-based design uses both billing models together to handle variable and unpredictable query patterns efficiently. On-demand billing charges per TiB of data scanned with no configuration and a minimum of 10 MiB per query, while capacity-based billing charges for reserved baseline and autoscaled slots. The billing model applies per project, so different projects can use different models at the same time and can switch models at any time.
| Model | Metering unit | Capacity range | Cost and predictability |
|---|---|---|---|
| On-demand | TiB scanned | Up to 2,000 slots per project | Pay-as-you-go with variable billing; optional project or user quotas as a hard cap |
| Capacity-based | Slot-hours | 50 slots minimum per reservation up to regional quota | Predictable billing through slot budgets plus optional monthly or annual commitments for steady load |
For spiky workloads, the efficient pattern is to cover steady-state demand with baseline slots and discounted commitments, allow autoscaling to absorb predictable peaks, and leave highly variable, isolated, or low-volume projects on on-demand. Pipeline load and extract jobs, background search index and change data capture jobs, and external BigQuery ML jobs can be assigned to dedicated PIPELINE, BACKGROUND, and ML_EXTERNAL reservations when they need guaranteed throughput separate from interactive queries.
None assignment forces projects or folders to use on-demand pricing instead of the centralized reservation.flat-rate for pricing model and Enterprise for edition.On-demand billing charges per TiB of data scanned with a 10 MiB minimum per query and uses a shared pool capped at 2,000 slots per project with no configuration required. Capacity-based Editions billing charges slot-hours for dedicated or autoscaling slots in reservations that start at 50 slots per reservation and scale to regional quota, with no charge for bytes processed when a query runs under the capacity-based model.
A reservation is a dedicated pool of slots created in an administration project, and an assignment binds a project, folder, or organization to that reservation so its queries draw execution resources from the reservation rather than the shared on-demand pool. This isolates production and deadline-driven work from ad hoc work, and administrators can create separate reservations such as prod and test so test jobs do not compete for capacity that production workloads need.
Use always-allocated baseline slots to cover steady-state demand with predictable billing and optional monthly or annual commitments for discounted steady-state capacity, while letting autoscaled slots be added or removed dynamically to absorb bursts. Control cost by configuring a slot budget for each reservation as the maximum cost cap, so a low baseline plus a higher autoscaling ceiling handles steady load and peaks without manual resizing.
An enterprise is operating BigQuery on the Enterprise edition across several departments. The data engineering team manages a multi-tenant environment with the following workload requirements:
Which configuration strategy should the team implement across their reservations to satisfy these workload requirements while optimizing cost?
Last updated