|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description

| Interface Summary | |
|---|---|
| Optimizer | Interface for an optimizer. |
| OptimizerRule | Interface that defines an Optimizer rule. |
| Class Summary | |
|---|---|
| AddAccessNodes | An optimizer rule that inserts an ACCESS above each SOURCE leaf node in a query plan. |
| ChooseJoinAlgorithm | An optimizer rule that choose the appropriate join algorithm and sets up any prerequisites, based upon
the JoinCondition. |
| CopyCriteria | An optimizer rule that copies SELECT nodes that apply to one side of a equi-join condition so that they
also apply to the other side fo the equi-join condition. |
| PushProjects | This rule attempts to ensure the proper location of PlanNode.Type.PROJECT nodes. |
| PushSelectCriteria | An optimizer rule that attempts to push the criteria nodes in a canonical plan down as far as possible. |
| RaiseSelectCriteria | An optimizer rule that moves up higher in the plan any SELECT node that appears below a JOIN node and
that applies to selectors that are on the other side of the join. |
| RemoveEmptyAccessNodes | An optimizer rule that removes any ACCESS nodes that are known to never return any tuples because of
conflicting constraints. |
| ReplaceAliases | An optimizer rule that changes any nodes that make use of an alias for a SOURCE, including columns,
including criteria, project nodes, etc. |
| ReplaceViews | An optimizer rule that replaces any SOURCE nodes that happen to be views. |
| RewriteAsRangeCriteria | An optimizer rule that rewrites two AND-ed Constraints that constraint a dynamic
operand to a range of values as a single Between constraint. |
| RewriteIdentityJoins | An optimizer rule that rewrites JOIN nodes that have equi-join criteria where
the columns involved in the equi-join are all identity columns (that is, they form a key for
the table). |
| RightOuterToLeftOuterJoins | An optimizer rule that converts right outer joins into
left outer joins. |
| RuleBasedOptimizer | Optimizer implementation that optimizes a query using a stack of rules. |
This package contains the Optimizer interface, a rule-based optimizer implementation, and library of optimization rules.
The Optimizer is responsible for evaluating, validating, and manipulating a canonical query plan to produce a more
a single optimized query processing plan. The query plan is often changed in situ, although this is not required
of the Optimizer implementations. A library of existing
OptimizerRule classes is provided, though it's very easy to
add more optimizer rules.
The RuleBasedOptimizer is an implementation that optimizes a query
using a stack of rules. A new stack is created for each rule, though the rules are required to be immutable and thus
often shared and reused. And, the RuleBasedOptimizer is easily subclassed to define a custom stack of rules.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||