Partitioning divides a table into date or integer-range segments. A direct filter on the partition column lets BigQuery skip partitions outside the requested range. Clustering sorts data within storage blocks so filters on the clustering columns can skip more blocks. Put frequently filtered clustering columns first.
A dry run validates a query and estimates bytes before execution. Read that estimate before pressing RUN in this simulator. The local estimate models selected columns and simple date partition filters; it doesn't model physical clustering blocks or production slot scheduling. For clustered tables, a production pre-run estimate can be an upper bound because the final block pruning happens during execution.
Design the table around the report's filters. A June order mart can partition by order_date and cluster by customer_id. Selecting fewer columns also matters. LIMIT changes the number of returned rows, but it doesn't substitute for a partition restriction.