# Overselecting data and misusing LIMIT for cost control in BigQuery

Canonical: https://www.pointfive.co/efficiency-hub/inefficiencies/overselecting-data-and-misusing-limit-for-cost-control-in-bigquery

Analysts use SELECT * (reading more columns than needed) and/or rely on LIMIT as a cost-control mechanism.

By: Benjamin van der Maas

[Cloud Efficiency Hub](https://www.pointfive.co/efficiency-hub) 

# Overselecting Data and Misusing LIMIT for Cost Control in BigQuery

The short version

Analysts use SELECT \* (reading more columns than needed) and/or rely on LIMIT as a cost-control mechanism.

[Benjamin van der Maas](https://www.linkedin.com/in/benjamin-van-der-maas-71168466/)

Manager, Cloud FinOps @ Johnson & Johnson

GCP service

[GCP BigQuery](https://www.pointfive.co/efficiency-hub/cloud-services/gcp-bigquery)

Category

[Databases](https://www.pointfive.co/efficiency-hub/service-category/databases)

Reference

CER-0295

Type

Excessive Ingestion or Processing

## Explanation

Why the waste happens and who it affects.

In BigQuery, projecting excess columns increases the amount of data read and can materially raise query cost, particularly on wide tables and frequently-run queries. Separately, applying LIMIT to a query does not inherently reduce bytes processed for non-clustered tables; it mainly caps the result set returned. The "LIMIT saves cost" assumption is only sometimes true on clustered tables, where BigQuery may be able to stop scanning earlier once enough clustered blocks have been read.

## Billing model

The pricing dimensions that drive this cost.

BigQuery query cost is driven by the data read/processed by the query. Selecting unnecessary columns increases bytes processed. Using LIMIT typically reduces only the rows returned, not the data read - especially on non-clustered tables. On clustered tables, LIMIT can reduce bytes scanned in some cases because scanning may stop after enough blocks are read.

## How to detect

4 checks to find it in your estate.

- Review whether recurring or shared queries use SELECT \* instead of selecting required columns

- Identify query patterns that treat LIMIT as a primary way to reduce cost, especially on non-clustered tables

- Assess whether large or wide tables are commonly queried without intentional column selection or data reduction

- Check whether users expect LIMIT to lower cost in cases where clustering is not present or not aligned with the query pattern

## How to fix

3 ways to remove the waste.

- Replace SELECT \* with explicit column selection for production, scheduled, and commonly reused queries

- Treat LIMIT as a result-size control, not a default cost-control strategy; rely on intentional data reduction approaches instead

- Improve discoverability of table schemas (catalogs / docs) so users can choose columns intentionally before querying

## Documentation

Vendor references for pricing and configuration.

- [https://cloud.google.com/bigquery/pricing  cloud.google.com](https://cloud.google.com/bigquery/pricing)

- [https://docs.cloud.google.com/bigquery/docs/best-practices-performance-compute  docs.cloud.google.com](https://docs.cloud.google.com/bigquery/docs/best-practices-performance-compute)

- [https://docs.cloud.google.com/bigquery/docs/best-practices-costs  docs.cloud.google.com](https://docs.cloud.google.com/bigquery/docs/best-practices-costs)

## Related inefficiencies

[Browse the library](https://www.pointfive.co/efficiency-hub)

- GCP BigQuery  CER-0226

### [Unoptimized Billing Model for BigQuery Dataset Storage](https://www.pointfive.co/efficiency-hub/inefficiencies/unoptimized-billing-model-for-bigquery-dataset-storage)

Highly compressible datasets, such as those with repeated string fields, nested structures, or uniform rows, can benefit significantly from physical storage billing. Yet most datasets remain on logical storage by default, even when...

Databases

- GCP BigQuery  CER-0069

### [Inefficient Use of Reservations in BigQuery](https://www.pointfive.co/efficiency-hub/inefficiencies/inefficient-use-of-reservations-in-bigquery)

Teams often adopt capacity-based pricing (BigQuery editions reservations with baseline slots and optional commitments) to stabilize costs or optimize for heavy, recurring workloads. However, if query volumes drop - due to seasonal cycles,...

Databases

- GCP BigQuery  CER-0024

### [Unnecessary Reset of Long-Term Storage Pricing in BigQuery](https://www.pointfive.co/efficiency-hub/inefficiencies/unnecessary-reset-of-long-term-storage-pricing-in-bigquery)

BigQuery incentivizes efficient data retention by cutting storage costs in half for tables or partitions that go 90 days without modification. However, many teams unintentionally forfeit this discount by performing broad or unnecessary...

Databases

---
Source: the public page above. Product screenshots and illustrative interfaces are examples, not live customer data.

