From the preceding sections on the types of joins, you can see that data movement is required for all distributed join types except a collocated join.
To eliminate the need for data movement and to maximize performance, all queries should be written so that a collocated join is possible. In other words, the partitioning keys of the distributed files should match the fields used to join the files together. For queries that are run frequently, it is more important to have the partitioning keys match the join fields than it is to match the ordering or the grouping criteria.