A new type of optimization, called predicate move-around, ia introduced. It is shown how this optimization `considerably improvea the efficiency of evaluating SQL queries that have query graphs with a large number of query blocks (which ie a typical situation when queries are defined in terms of multiple views and subqueries). Predicate move-around works by moving predicates across query blocks (in the query graph) that cannot be merged into one block. Predicate move-around is a generalization of and has many advantages over the traditional predicate pushdotin. One key advantage arises from the fact that predicate move-around precedes pushdown by pulling predicates up the query graph. As a result, predicates that appear in the query in one part of the graph can be moved around the graph and applied alao in other parts of graph. Moreover, predicate movearound optimization can move a wider class of predicates in a wider class of queries aa compared to the standard predicate pushdown tec...
Alon Y. Levy, Inderpal Singh Mumick, Yehoshua Sagi