A marketing analyst runs a query over a 10 TB events table to find the 100 accounts with the most conversions last month. The table is partitioned by event date, but the query filters only on conversion status. The analyst wants a lower on-demand bill. Which change helps most?
Show answer and explanation
Answer: B
On-demand BigQuery pricing is based on bytes read. Filtering on the partitioning column lets BigQuery prune partitions it does not need, and naming only the required columns avoids reading unused ones. Together these can cut scanned bytes dramatically. Selecting every column increases bytes read, a longer timeout does not change how much data is read, and cached results only help when an identical query runs against unchanged tables.
Why the other options are wrong
- A. SELECT * forces BigQuery to read every column in the table, which raises bytes billed and does nothing to narrow the scan.
- C. A timeout setting only controls how long a job may run; it has no effect on how many bytes the query reads or how much is charged.
- D. Cached results are reused only for identical queries against unchanged tables, so waiting for a cache hit does not help a new analysis with a different filter.