Your BigQuery costs have tripled in the past quarter due to team growth and ad-hoc queries. Walk through a comprehensive BigQuery cost optimization strategy including query optimization, slot reservations, partitioning/clustering, and governance controls.
Quick Answer
Implement partitioned and clustered tables to reduce data scanned, use slot reservations for predictable costs at scale, enforce project-level query quotas, adopt authorized views for column-level security, and use BI Engine for dashboard acceleration. Monitor with INFORMATION_SCHEMA and set up cost alerts.
Detailed Answer
Understanding BigQuery Pricing Models
BigQuery offers two pricing models: on-demand ($6.25/TiB scanned) and capacity-based (slot reservations starting at 100 slots for ~$2,000/month). On-demand is cost-effective for exploratory workloads under ~30 TiB/month. Beyond that, slot reservations provide predictable costs and better price-per-query economics. The edition-based pricing (Standard, Enterprise, Enterprise Plus) provides autoscaling slots with per-second billing and baseline/max slot configurations.
Table Design for Cost Reduction
Partitioning by date/timestamp is the single most impactful optimization. A query filtering on WHERE event_date = '2026-06-23' on a daily-partitioned table scans only that day's partition instead of the entire table. Clustering further reduces bytes scanned by co-locating rows with similar values. For a 10 TiB events table partitioned by date and clustered by user_id and event_type, a typical analytical query scans 95% less data. Always use require_partition_filter to prevent full table scans.
Query Optimization Techniques
Use SELECT only the columns needed—BigQuery is columnar, so selecting fewer columns scans less data. Avoid SELECT * in production queries. Use approximate aggregation functions (APPROX_COUNT_DISTINCT instead of COUNT(DISTINCT)) for dashboards where exactness isn't critical. Materialize intermediate results using scheduled queries or materialized views rather than recomputing expensive CTEs repeatedly. Use LIMIT with ORDER BY to avoid sorting the entire result set.
Governance and Cost Controls
Set project-level custom quotas to cap daily bytes scanned per project and per user. Create a BigQuery cost dashboard using INFORMATION_SCHEMA.JOBS to track per-user, per-project, and per-query costs. Implement a query review process for production pipelines. Use authorized datasets and column-level security with policy tags to prevent teams from accessing (and scanning) data they don't need.
Slot Reservations Strategy
For organizations spending over $5,000/month on BigQuery, Enterprise edition with autoscaling is typically cost-optimal. Set a baseline of 100-200 slots (guaranteed capacity) and a maximum of 500-800 slots for burst. Assign reservations to folders or projects to prioritize production ETL over ad-hoc exploration. Use INFORMATION_SCHEMA.JOBS_TIMELINE to analyze slot utilization and right-size reservations quarterly.