Sbob <sbob@xxxxxxxxxxxxxxxxxxxxx> writes: > 29 million of the 32 million rows in the table have NULL for contract_date [ blink... ] So your query is selecting at least 29/32nds of the table, plus however much matches the contract_date > '2022-01-01' alternative. I'm not sure how you expect that to be significantly cheaper than scanning the whole table. regards, tom lane