public interface OptimizerFactory
There is expected to be only one of these configured per database.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
MODULE
Module name for the monitor's module locating system.
|
Modifier and Type | Method and 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.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.