1. A computer-implemented method of joining one or more first database objects with one or more second database objects comprising: determining a weight for each of a plurality of join predicates between one or more of the first database objects and one or more of the second database objects based on a join selectivity for each of the plurality of join predicates, wherein the join selectivity comprises an estimation of a portion of a total number of values in database objects that will be included in the join based on a particular predicate; sorting the plurality of join predicates based on the determined weights; and performing a join operation to join the one or more first database objects with the one or more second database objects in accordance with an order of the sorted plurality of join predicates, wherein determining the weight for each of the plurality of join predicates comprises: determining the join selectivity for each join predicate comprising determining a frequency in each of the first database objects of values that are used to perform the join, and determining the weight according to the following formula: weight = ( 1 - join_selectivity ) / lookup_cost ; wherein the lookup cost comprises an estimation of the resources that would be used to perform the join.