Idle warehouses and SELECT *
What is the cost-optimal suspend timeout?
Idle warehouses
An auto-suspend timeout is a hysteresis parameter (a delay before switching off), and its cost-optimal value can be derived.
- If you keep capacity idle for time T, you pay T × rate.
- If you suspend, you pay the billed cold-start duration c on the next arrival.
Purely on cost, keeping the warehouse warm wins only while T < c. So the cost-optimal timeout equals the cold-start duration, which is tens of seconds.
Real timeouts sit at five to ten minutes, which is an order of magnitude above break-even. This is not waste. It is a latency purchase: you pay to keep the first query of the next session fast. It is usually made by someone who never described it that way. Naming it turns an invisible leak into a priced decision, which is the only useful thing to do with it.
Unpruned scans and SELECT *
This one has a precise cause. Physical data independence is the principle that a query says what data it wants and never how it is stored. It is the foundational abstraction of the relational model. It asserts that physical layout is not the querier's concern.
Scan pricing makes layout the querier's bill
The abstraction keeps working perfectly by its own definition while being wrong in practice. BI tools emit SELECT * because the model says that the number of columns does not matter. On a 200-column table under a byte meter it matters by 200 ÷ 5 = 40× if the dashboard needs 5 columns. Nothing is broken, which is exactly the problem.