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; and utilizing the one or more new predicates to process the second query and determine a second result set for the second query.