1. A method performed by data processing apparatus, the method comprising: creating a set of candidate projections each being based on a column sort order in a set of column sort orders and being associated with properties of one or more tables in a set of tables to which the column sort order applies, wherein a column sort order is a sequence of one or more columns, each column's data being stored in an order; and until a stopping condition is reached, progressively narrowing the set of candidate projections and a set of queries by eliminating candidate projections that do not satisfy a performance improvement criterion for remaining queries based on the properties associated with the candidate projections.