OptimizerFactoryImpl
public interface OptimizerFactory
There is expected to be only one of these configured per database.
Modifier and Type | Field | Description |
---|---|---|
static java.lang.String |
MODULE |
Module name for the monitor's module locating system.
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
doJoinOrderOptimization() |
Tell whether to do join order optimization.
|
CostEstimate |
getCostEstimate() |
Return a new CostEstimate.
|
int |
getMaxMemoryPerTable() |
Return the maxMemoryPerTable setting, this is used in
optimizer, as well as subquery materialization at run time.
|
Optimizer |
getOptimizer(OptimizableList optimizableList,
OptimizablePredicateList predicateList,
DataDictionary dDictionary,
RequiredRowOrdering requiredRowOrdering,
int numTablesInQuery,
OptimizerPlan overridingPlan,
LanguageConnectionContext lcc) |
Only one optimizer level should exist in the database, however, the
connection may have multiple instances of that optimizer
at a given time.
|
boolean |
supportsOptimizerTrace() |
Return whether or not the optimizer associated with
this factory supports optimizer trace.
|
static final java.lang.String MODULE
Optimizer getOptimizer(OptimizableList optimizableList, OptimizablePredicateList predicateList, DataDictionary dDictionary, RequiredRowOrdering requiredRowOrdering, int numTablesInQuery, OptimizerPlan overridingPlan, LanguageConnectionContext lcc) throws StandardException
optimizableList
- The list of Optimizables to optimize.predicateList
- The list of unassigned OptimizablePredicates.dDictionary
- The DataDictionary to use.requiredRowOrdering
- The required ordering of the rows to
come out of the optimized result setnumTablesInQuery
- The number of tables in the current queryoverridingPlan
- (Optional) A complete plan specified by optimizer overrides. Must have been bound already.lcc
- The LanguageConnectionContext
RESOLVE - We probably want to pass a subquery list, once we define a
new interface for them, so that the Optimizer can out where to attach
the subqueries.StandardException
- Thrown on errorCostEstimate getCostEstimate()
boolean supportsOptimizerTrace()
int getMaxMemoryPerTable()
boolean doJoinOrderOptimization()
true
means do join order optimization, false
means don't do it.Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.