Title :
Optimization and evaluation of disjunctive queries
Author :
Claussen, Jens ; Kemper, Alfons ; Moerkotte, Guido ; Peithner, Klaus ; Steinbrunn, Michael
Author_Institution :
Passau Univ., Germany
Abstract :
It is striking that the optimization of disjunctive queries-i.e. those which contain at least one OR-connective in the query predicate-has been vastly neglected in the literature, as well as in commercial systems. In this paper, we propose a novel technique, called bypass processing, for evaluating such disjunctive queries. The bypass processing technique is based on new selection and join operators that produce two output streams: the TRUE-stream with tuples satisfying the selection (join) predicate and the FALSE-stream with tuples not satisfying the corresponding predicate. Splitting the tuple streams in this way enables us to “bypass” costly predicates whenever the “fate” of the corresponding tuple (stream) can be determined without evaluating this predicate. In the paper, we show how to systematically generate bypass evaluation plans utilizing a bottom-up building-block approach. We show that our evaluation technique allows us to incorporate the standard SQL semantics of null values. For this, we devise two different approaches: one is based on explicitly incorporating three-valued logic into the evaluation plans; the other one relies on two-valued logic by “moving” all negations to atomic conditions of the selection predicate. We describe how to extend an iterator-based query engine to support bypass evaluation with little extra overhead. This query engine was used to quantitatively evaluate the bypass evaluation plans against the traditional evaluation techniques utilizing a CNFor DNF-based query predicate
Keywords :
database theory; optimisation; query processing; FALSE-stream; OR-connectives; SQL semantics; TRUE-stream; atomic conditions; bottom-up building-block approach; bypass evaluation plans; bypass processing; conjunctive normal form; costly predicates; disjunctive normal form; disjunctive query evaluation; disjunctive query optimization; expensive query predicates; iterator-based query engine; join operator; negations; null values; output streams; overhead; selection operator; three-valued logic; tuple streams; two-valued logic; Database systems; Engines; Logic; Operations research; Proposals; Query processing; Relational databases;
Journal_Title :
Knowledge and Data Engineering, IEEE Transactions on