1. A computer-implemented method comprising: for each table in a database query, selecting one or more projections that reduce an estimated cost for executing the query for the table, based on a segmentation or sort order of the selected projections; based on a data distribution of one or more of the selected projections among sites in a computer network, generating, for the query, possible join orders that represent different combinations of data distribution operations applied to the outputs of one or more of the query's joins; and evaluating the join orders based on a cost model.