Query Optimization: Eager and Lazy Aggregation
P-A (Paul) Larson
University of Waterloo
Currently on leave at IBM Santa Theresa
Abstract
Efficient processing of aggregation queries is essential
for decision support applications. This talk describes a class of
query transformations, called eager aggregation and lazy
aggregation, that allows a query optimizer to move group-by
operations up and down the query tree. For some queries, this type
of transformation can reduce the processing time by 90% or more.
Eager aggregation partially pushes a group-by past a join and begins
to produce partial groups early, thereby reducing the number of rows
flowing into subsequent operations. The reverse transformation,
lazy aggregation, moves a group-by past a join and combines
two group-by operations into one. This transformation is typically of
interest when an aggregation query references a grouped view
(a view containing a group-by). We show that eager/lazy aggregation
can be applied if certain (derived) functional dependencies are guaranteed
to hold in the join result. The talk will also show that sometimes we
have several ways of transforming a query and outline a practical algorithm
for finding all valid transformations.
This is joint work with Paul Yan, University of Waterloo.
Publications Related to Talk
Please contact Paul Yan (pwyan@bluebox.uwaterloo.ca) if
you have specific questions about the talk.