1. A method of processing complex queries, comprising: detecting a first query directed towards a dataset which satisfies a size criterion, wherein the first query includes a set of initial predicates and results in a first result set; identifying one or more new predicates from the result set, wherein the one or more new predicates are not within the set of initial predicates; detecting a second query directed towards the dataset, wherein the second query is the same as the first query; determining that predicates of the one or more new predicates filter a threshold amount of tuples of an initial set of tuples; determining an order of the one or more new predicates such that a new predicate which filters relatively more tuples of the initial set of tuples is before a new predicate which filters relatively less tuples of the initial set of tuples; and utilizing the one or more new predicates to process the second query in the order and determine a second result set for the second query.
1. A method of processing complex queries, comprising: detecting a first query directed towards a dataset which satisfies a size criterion, wherein the first query includes a set of initial predicates and results in a first result set; identifying one or more new predicates from the result set, wherein the one or more new predicates are not within the set of initial predicates; detecting a second query directed towards the dataset, wherein the second query is the same as the first query; determining that predicates of the one or more new predicates filter a threshold amount of tuples of an initial set of tuples; determining an order of the one or more new predicates such that a new predicate which filters relatively more tuples of the initial set of tuples is before a new predicate which filters relatively less tuples of the initial set of tuples; and utilizing the one or more new predicates to process the second query in the order and determine a second result set for the second query. 2. The method of claim 1 , the method further comprising: detecting one or more modifications to the dataset; determining that the one or more modifications invalidate a new predicate of the one or more new predicates; and invalidating the new predicate.