public class StatementGroupAndJoinOptimizer extends AbstractQueryModelVisitor<OptimizationException> implements FedXOptimizer
ExclusiveStatement into ExclusiveGroup 2. Adjust the join order using
DefaultFedXCostModel| Constructor and Description |
|---|
StatementGroupAndJoinOptimizer(QueryInfo queryInfo,
FedXCostModel costModel) |
| Modifier and Type | Method and Description |
|---|---|
protected double |
estimateCost(TupleExpr tupleExpr,
Set<String> joinVars) |
protected List<TupleExpr> |
formGroups(List<TupleExpr> originalArgs)
Group
ExclusiveStatements having the same source into an ExclusiveGroup. |
void |
meet(Service tupleExpr) |
protected void |
meetNJoin(NJoin node) |
void |
meetOther(QueryModelNode node) |
void |
optimize(TupleExpr tupleExpr)
Optimize the provided tuple expression
|
protected List<TupleExpr> |
optimizeJoinOrder(List<TupleExpr> joinArgs)
Join Order Optimizer
Group -> Statements according to number of free Variables
Additional Heuristics: - ExclusiveGroups are cheaper than any other subquery - owned statements are cheaper if
they have a single free variable
|
meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meet, meetBinaryTupleOperator, meetBinaryValueOperator, meetCompareSubQueryValueOperator, meetNAryValueOperator, meetNode, meetSubQueryValueOperator, meetUnaryTupleOperator, meetUnaryValueOperator, meetUpdateExprprotected final QueryInfo queryInfo
public StatementGroupAndJoinOptimizer(QueryInfo queryInfo, FedXCostModel costModel)
public void optimize(TupleExpr tupleExpr)
FedXOptimizeroptimize in interface FedXOptimizerpublic void meet(Service tupleExpr)
meet in interface QueryModelVisitor<OptimizationException>meet in class AbstractQueryModelVisitor<OptimizationException>public void meetOther(QueryModelNode node)
meetOther in interface QueryModelVisitor<OptimizationException>meetOther in class AbstractQueryModelVisitor<OptimizationException>protected void meetNJoin(NJoin node)
protected List<TupleExpr> formGroups(List<TupleExpr> originalArgs)
ExclusiveStatements having the same source into an ExclusiveGroup.originalArgs - protected List<TupleExpr> optimizeJoinOrder(List<TupleExpr> joinArgs)
joinArgs - Copyright © 2015-2020 Eclipse Foundation. All Rights Reserved.