| Modifier and Type | Class | Description |
|---|---|---|
static class |
XMLOptTrace.QueryBlock |
| Modifier and Type | Field | Description |
|---|---|---|
private ContextManager |
_cm |
|
private XMLOptTrace.QueryBlock |
_currentQueryBlock |
|
private org.w3c.dom.Element |
_currentStatement |
|
private int |
_currentStatementID |
|
private org.w3c.dom.Document |
_doc |
|
private LanguageConnectionContext |
_lcc |
|
private int |
_maxQueryID |
|
private java.util.Stack<XMLOptTrace.QueryBlock> |
_queryBlockStack |
|
private org.w3c.dom.Element |
_root |
|
private static java.lang.String |
CE_ESTIMATED_COST |
|
private static java.lang.String |
CE_ROW_COUNT |
|
private static java.lang.String |
CE_SINGLE_SCAN_ROW_COUNT |
|
private static java.lang.String |
DECORATION |
|
private static java.lang.String |
DECORATION_CONGLOM_COST |
|
private static java.lang.String |
DECORATION_CONGLOM_NAME |
|
private static java.lang.String |
DECORATION_EXTRA_NON_QUALIFIERS |
|
private static java.lang.String |
DECORATION_EXTRA_QUALIFIERS |
|
private static java.lang.String |
DECORATION_EXTRA_START_STOP_SELECTIVITY |
|
private static java.lang.String |
DECORATION_FIRST_COLUMN_SELECTIVITY |
|
private static java.lang.String |
DECORATION_JOIN_STRATEGY |
|
private static java.lang.String |
DECORATION_KEY |
|
private static java.lang.String |
DECORATION_SKIP |
|
private static java.lang.String |
DECORATION_START_STOP_SELECTIVITY |
|
private static java.lang.String |
DECORATION_TABLE_NAME |
|
private static java.lang.String |
JO |
|
private static java.lang.String |
JO_COMPLETE |
|
private static java.lang.String |
JO_SLOT |
|
private static java.lang.String |
PC |
|
private static java.lang.String |
PC_AVOID_SORT |
|
private static java.lang.String |
PC_COMPLETE |
|
private static java.lang.String |
PC_SUMMARY |
|
private static java.lang.String |
PC_TYPE |
|
(package private) static java.lang.String |
PLAN_COST_VIEW |
|
(package private) static java.lang.String |
PLAN_COST_VTI |
|
private static java.lang.String |
QBLOCK |
|
private static java.lang.String |
QBLOCK_ID |
|
private static java.lang.String |
QBLOCK_NO_BEST_PLAN |
|
private static java.lang.String |
QBLOCK_OPT_TABLE_NUMBER |
|
private static java.lang.String |
QBLOCK_OPTIMIZABLE |
|
private static java.lang.String |
QBLOCK_OPTIMIZER_ID |
|
private static java.lang.String |
QBLOCK_SKIP |
|
private static java.lang.String |
QBLOCK_SORT_COST |
|
private static java.lang.String |
QBLOCK_START_TIME |
|
private static java.lang.String |
QBLOCK_TIMEOUT |
|
private static java.lang.String |
QBLOCK_TOTAL_COST |
|
private static java.lang.String |
QBLOCK_VACUOUS |
|
private static java.lang.String |
SEL_COUNT |
|
private static java.lang.String |
SEL_SELECTIVITY |
|
private static java.lang.String |
SKIP_REASON |
|
private static java.lang.String |
STMT |
|
private static java.lang.String |
STMT_ID |
|
private static java.lang.String |
STMT_TEXT |
|
private static java.lang.String |
TABLE_FUNCTION_FLAG |
| Constructor | Description |
|---|---|
XMLOptTrace() |
0-arg constructor required by OptTrace contract
|
| Modifier and Type | Method | Description |
|---|---|---|
private org.w3c.dom.Element |
createElement(org.w3c.dom.Element parent,
java.lang.String tag,
java.lang.String content) |
Create an element and add it to a parent
|
private void |
formatCost(org.w3c.dom.Element costElement,
CostEstimate raw) |
Format a CostEstimate as subelements of a parent
|
private void |
formatJoinOrder(org.w3c.dom.Element parent,
int[] proposedJoinOrder) |
Format a join order list
|
private org.w3c.dom.Element |
formatPlanCost(org.w3c.dom.Element parent,
java.lang.String type,
int[] planOrder,
int planType,
CostEstimate raw) |
Turn a CostEstimate for a join order into a human-readable element
|
private java.lang.String |
formatPlanSummary(int[] planOrder,
int planType) |
Produce a string representation of the plan being considered now.
|
private void |
formatSelectivity(org.w3c.dom.Element parent,
java.lang.String tag,
int count,
double selectivity) |
Format selectivity subelement
|
private org.w3c.dom.Element |
formatSkip(org.w3c.dom.Element parent,
java.lang.String skipTag,
java.lang.String reason) |
Create an element explaining that we're skipping some processing
|
private java.lang.String |
formatTimestamp(long timestamp) |
Turn a timestamp into a human-readable string
|
private Optimizable |
getOptimizable(int tableNumber) |
Get the Optimizable with the given tableNumber
|
private TableName |
getOptimizableName(Optimizable optimizable) |
Get the name of an optimizable
|
private boolean |
isBaseTable(Optimizable optimizable) |
Return true if the optimizable is a base table
|
private boolean |
isComplete(int[] joinOrder) |
Return true if the join order has been completely filled in
|
private boolean |
isFromTable(Optimizable optimizable) |
Return true if the optimizable is a FromTable
|
private TableName |
makeTableName(java.lang.String schemaName,
java.lang.String unqualifiedName,
ContextManager cm) |
Make a TableName
|
private void |
printThrowable(java.lang.Throwable t) |
Print an exception to the log file
|
void |
printToWriter(java.io.PrintWriter out) |
Print the trace so far.
|
void |
traceAddingUnorderedOptimizable(int predicateCount) |
Say that we're adding an unordered optimizable.
|
void |
traceChangingAccessPathForTable(int tableNumber) |
Say that we're considering a different access path for a table.
|
void |
traceCheapestPlanSoFar(int planType,
CostEstimate currentCost) |
Report the cost of the cheapest plan so far.
|
void |
traceCompleteJoinOrder() |
Say that we have a complete join order.
|
void |
traceCompositeSelectivityFromStatistics(double statCompositeSelectivity) |
Report the selectivity calculated from SYSSTATISTICS.
|
void |
traceConsideringConglomerate(ConglomerateDescriptor cd,
int tableNumber) |
Report that we are considering a conglomerate for a table.
|
void |
traceConsideringJoinStrategy(JoinStrategy js,
int tableNumber) |
Say that we're considering a particular join strategy on a particular table.
|
void |
traceConstantStartStopPositions() |
Say that we're setting the lock mode to MODE_RECORD because the start and stop positions are all constant.
|
void |
traceCostIncludingCompositeSelectivityFromStats(CostEstimate cost,
int tableNumber) |
Report the cost based on selectivities coming out of SYSSTATISTICS.
|
void |
traceCostIncludingExtra1stColumnSelectivity(CostEstimate cost,
int tableNumber) |
Report the cost of a scan given the selectivity of an extra first column.
|
void |
traceCostIncludingExtraNonQualifierSelectivity(CostEstimate cost,
int tableNumber) |
Report the cost if we include an extra non-qualifier.
|
void |
traceCostIncludingExtraQualifierSelectivity(CostEstimate cost,
int tableNumber) |
Report the cost if we include an extra qualifier.
|
void |
traceCostIncludingExtraStartStop(CostEstimate cost,
int tableNumber) |
Report the cost if we include an extra start/stop.
|
void |
traceCostIncludingStatsForIndex(CostEstimate cost,
int tableNumber) |
Report the cost based on index statistics.
|
void |
traceCostOfConglomerateScan(int tableNumber,
ConglomerateDescriptor cd,
CostEstimate costEstimate,
int numExtraFirstColumnPreds,
double extraFirstColumnSelectivity,
int numExtraStartStopPreds,
double extraStartStopSelectivity,
int startStopPredCount,
double statStartStopSelectivity,
int numExtraQualifiers,
double extraQualifierSelectivity,
int numExtraNonQualifiers,
double extraNonQualifierSelectivity) |
Report the cost of a conglomerate scan.
|
void |
traceCostOfNoncoveringIndex(CostEstimate cost,
int tableNumber) |
Report the cost of using a non-covering index.
|
void |
traceCostOfNScans(int tableNumber,
double rowCount,
CostEstimate cost) |
Report the cost of scanning a table a certain number of times
|
void |
traceCostWithoutSortAvoidance(CostEstimate currentCost) |
Report the cost without a sort.
|
void |
traceCostWithSortAvoidance(CostEstimate currentSortAvoidanceCost) |
Report the cost with sort avoidance.
|
void |
traceCurrentPlanAvoidsSort(CostEstimate bestCost,
CostEstimate currentSortAvoidanceCost) |
Say that the current plan avoids a sort.
|
void |
traceEndQueryBlock() |
End tracing the optimization of a query block.
|
void |
traceEstimatingCostOfConglomerate(ConglomerateDescriptor cd,
int tableNumber) |
Report the cost of using a particular conglomerate to scan a table.
|
void |
traceHashKeyColumns(int[] hashKeyColumns) |
Report the columns being traced
|
void |
traceIllegalUserJoinOrder() |
Say that the user specified an impossible join order.
|
void |
traceJoinOrderConsideration(int joinPosition,
int[] proposedJoinOrder,
JBitSet assignedTableMap) |
Say that we're considering a join order.
|
void |
traceLookingForSpecifiedIndex(java.lang.String indexName,
int tableNumber) |
Say that we're looking for an index specified by optimizer hints.
|
void |
traceModifyingAccessPaths(int optimizerID) |
Say that we're modifying access paths.
|
void |
traceNextAccessPath(java.lang.String baseTable,
int predicateCount) |
Report that we are advancing to the next access path for the table.
|
void |
traceNoBestPlan() |
Say that we couldn't find a best plan.
|
void |
traceNoMoreConglomerates(int tableNumber) |
Say that we have exhausted the conglomerate possibilities for a table.
|
void |
traceNonCoveringIndexCost(double cost,
int tableNumber) |
Say that we're considering a non-covering index.
|
void |
traceNoStartStopPosition() |
Say that we're setting the lock mode to MODE_TABLE because there is no start/stop position.
|
void |
traceOptimizingJoinNode() |
Say that we're starting to optimize a join node
|
void |
traceRememberingBestAccessPath(AccessPath accessPath,
int tableNumber,
int planType) |
Report that we've found a best access path.
|
void |
traceRememberingBestAccessPathSubstring(AccessPath ap,
int tableNumber) |
Report the best access path for the table so far.
|
void |
traceRememberingBestJoinOrder(int joinPosition,
int[] bestJoinOrder,
int planType,
CostEstimate planCost,
JBitSet assignedTableMap) |
Say that we are remembering the current plan as the best join order so far.
|
void |
traceRememberingBestSortAvoidanceAccessPathSubstring(AccessPath ap,
int tableNumber) |
Report the best sort-avoiding access path for this table so far.
|
void |
traceRememberingBestUnknownAccessPathSubstring(AccessPath ap,
int tableNumber) |
Report an optimizer failure, e.g., while optimizing an outer join
|
void |
traceRememberingJoinStrategy(JoinStrategy joinStrategy,
int tableNumber) |
Say that we've found a new best join strategy for the table.
|
void |
traceScanningHeapWithUniqueKey() |
Say that we're considering scanning a heap even though we have a unique key match.
|
void |
traceShortCircuiting(boolean timeExceeded,
Optimizable thisOpt,
int joinPosition) |
Say that we short-circuited a join order.
|
void |
traceSingleMatchedRowCost(double cost,
int tableNumber) |
Report the cost of a scan which will match exactly one row.
|
void |
traceSkipHashJoinNoHashKeys() |
Say we won't consider a hash join because there are no hash key columns.
|
void |
traceSkippingBecauseTooMuchMemory(int maxMemoryPerTable) |
Say that we are skipping a plan because it consumes too much memory.
|
void |
traceSkippingJoinOrder(int nextOptimizable,
int joinPosition,
int[] proposedJoinOrder,
JBitSet assignedTableMap) |
Say that we're skipping the join order starting with the next optimizable.
|
void |
traceSkipUnmaterializableHashJoin() |
Say that we won't consider a hash join because the result can't be materialized
|
void |
traceSortCost(CostEstimate sortCost,
CostEstimate currentCost) |
Report the sort cost.
|
void |
traceSortNeededForOrdering(int planType,
RequiredRowOrdering requiredRowOrdering) |
Report that this plan needs a sort
|
void |
traceStartQueryBlock(long timeOptimizationStarted,
int optimizerID,
OptimizableList optimizableList) |
Start optimizer tracing for a query block.
|
void |
traceStartStatement(java.lang.String statementText) |
Start the start of tracing a statement.
|
void |
traceTimeout(long currentTime,
CostEstimate bestCost) |
Say that the optimizer ran out of time.
|
void |
traceUserJoinOrderOptimized() |
Say that we have optimized the user-specified join order.
|
void |
traceVacuous() |
Say that there's nothing to optimizer.
|
private static final java.lang.String STMT
private static final java.lang.String STMT_ID
private static final java.lang.String STMT_TEXT
private static final java.lang.String QBLOCK
private static final java.lang.String QBLOCK_OPTIMIZER_ID
private static final java.lang.String QBLOCK_START_TIME
private static final java.lang.String QBLOCK_ID
private static final java.lang.String QBLOCK_OPTIMIZABLE
private static final java.lang.String QBLOCK_OPT_TABLE_NUMBER
private static final java.lang.String QBLOCK_TIMEOUT
private static final java.lang.String QBLOCK_VACUOUS
private static final java.lang.String QBLOCK_SORT_COST
private static final java.lang.String QBLOCK_TOTAL_COST
private static final java.lang.String QBLOCK_NO_BEST_PLAN
private static final java.lang.String QBLOCK_SKIP
private static final java.lang.String JO
private static final java.lang.String JO_COMPLETE
private static final java.lang.String JO_SLOT
private static final java.lang.String DECORATION
private static final java.lang.String DECORATION_CONGLOM_NAME
private static final java.lang.String DECORATION_KEY
private static final java.lang.String DECORATION_TABLE_NAME
private static final java.lang.String DECORATION_JOIN_STRATEGY
private static final java.lang.String DECORATION_SKIP
private static final java.lang.String DECORATION_CONGLOM_COST
private static final java.lang.String DECORATION_FIRST_COLUMN_SELECTIVITY
private static final java.lang.String DECORATION_EXTRA_START_STOP_SELECTIVITY
private static final java.lang.String DECORATION_START_STOP_SELECTIVITY
private static final java.lang.String DECORATION_EXTRA_QUALIFIERS
private static final java.lang.String DECORATION_EXTRA_NON_QUALIFIERS
private static final java.lang.String SKIP_REASON
private static final java.lang.String PC
private static final java.lang.String PC_TYPE
private static final java.lang.String PC_COMPLETE
private static final java.lang.String PC_AVOID_SORT
private static final java.lang.String PC_SUMMARY
private static final java.lang.String CE_ESTIMATED_COST
private static final java.lang.String CE_ROW_COUNT
private static final java.lang.String CE_SINGLE_SCAN_ROW_COUNT
private static final java.lang.String SEL_COUNT
private static final java.lang.String SEL_SELECTIVITY
private static final java.lang.String TABLE_FUNCTION_FLAG
static final java.lang.String PLAN_COST_VTI
static final java.lang.String PLAN_COST_VIEW
private org.w3c.dom.Document _doc
private org.w3c.dom.Element _root
private org.w3c.dom.Element _currentStatement
private int _currentStatementID
private XMLOptTrace.QueryBlock _currentQueryBlock
private int _maxQueryID
private java.util.Stack<XMLOptTrace.QueryBlock> _queryBlockStack
private ContextManager _cm
private LanguageConnectionContext _lcc
public XMLOptTrace()
throws javax.xml.parsers.ParserConfigurationException
javax.xml.parsers.ParserConfigurationExceptionpublic void traceStartStatement(java.lang.String statementText)
OptTracetraceStartStatement in interface OptTracepublic void traceStartQueryBlock(long timeOptimizationStarted,
int optimizerID,
OptimizableList optimizableList)
OptTracetraceStartQueryBlock in interface OptTracepublic void traceEndQueryBlock()
OptTracetraceEndQueryBlock in interface OptTracepublic void traceTimeout(long currentTime,
CostEstimate bestCost)
OptTracetraceTimeout in interface OptTracepublic void traceVacuous()
OptTracetraceVacuous in interface OptTracepublic void traceCompleteJoinOrder()
OptTracetraceCompleteJoinOrder in interface OptTracepublic void traceSortCost(CostEstimate sortCost, CostEstimate currentCost)
OptTracetraceSortCost in interface OptTracepublic void traceNoBestPlan()
OptTracetraceNoBestPlan in interface OptTracepublic void traceModifyingAccessPaths(int optimizerID)
OptTracetraceModifyingAccessPaths in interface OptTracepublic void traceShortCircuiting(boolean timeExceeded,
Optimizable thisOpt,
int joinPosition)
OptTracetraceShortCircuiting in interface OptTracepublic void traceSkippingJoinOrder(int nextOptimizable,
int joinPosition,
int[] proposedJoinOrder,
JBitSet assignedTableMap)
OptTracetraceSkippingJoinOrder in interface OptTracepublic void traceIllegalUserJoinOrder()
OptTracetraceIllegalUserJoinOrder in interface OptTracepublic void traceUserJoinOrderOptimized()
OptTracetraceUserJoinOrderOptimized in interface OptTracepublic void traceJoinOrderConsideration(int joinPosition,
int[] proposedJoinOrder,
JBitSet assignedTableMap)
OptTracetraceJoinOrderConsideration in interface OptTracepublic void traceCostWithoutSortAvoidance(CostEstimate currentCost)
OptTracetraceCostWithoutSortAvoidance in interface OptTracepublic void traceCostWithSortAvoidance(CostEstimate currentSortAvoidanceCost)
OptTracetraceCostWithSortAvoidance in interface OptTracepublic void traceCurrentPlanAvoidsSort(CostEstimate bestCost, CostEstimate currentSortAvoidanceCost)
OptTracetraceCurrentPlanAvoidsSort in interface OptTracepublic void traceCheapestPlanSoFar(int planType,
CostEstimate currentCost)
OptTracetraceCheapestPlanSoFar in interface OptTracepublic void traceSortNeededForOrdering(int planType,
RequiredRowOrdering requiredRowOrdering)
OptTracetraceSortNeededForOrdering in interface OptTracepublic void traceRememberingBestJoinOrder(int joinPosition,
int[] bestJoinOrder,
int planType,
CostEstimate planCost,
JBitSet assignedTableMap)
OptTracetraceRememberingBestJoinOrder in interface OptTracepublic void traceSkippingBecauseTooMuchMemory(int maxMemoryPerTable)
OptTracetraceSkippingBecauseTooMuchMemory in interface OptTracepublic void traceCostOfNScans(int tableNumber,
double rowCount,
CostEstimate cost)
OptTracetraceCostOfNScans in interface OptTracepublic void traceSkipUnmaterializableHashJoin()
OptTracetraceSkipUnmaterializableHashJoin in interface OptTracepublic void traceSkipHashJoinNoHashKeys()
OptTracetraceSkipHashJoinNoHashKeys in interface OptTracepublic void traceHashKeyColumns(int[] hashKeyColumns)
OptTracetraceHashKeyColumns in interface OptTracepublic void traceOptimizingJoinNode()
OptTracetraceOptimizingJoinNode in interface OptTracepublic void traceConsideringJoinStrategy(JoinStrategy js, int tableNumber)
OptTracetraceConsideringJoinStrategy in interface OptTracepublic void traceRememberingBestAccessPath(AccessPath accessPath, int tableNumber, int planType)
OptTracetraceRememberingBestAccessPath in interface OptTracepublic void traceNoMoreConglomerates(int tableNumber)
OptTracetraceNoMoreConglomerates in interface OptTracepublic void traceConsideringConglomerate(ConglomerateDescriptor cd, int tableNumber)
OptTracetraceConsideringConglomerate in interface OptTracepublic void traceScanningHeapWithUniqueKey()
OptTracetraceScanningHeapWithUniqueKey in interface OptTracepublic void traceAddingUnorderedOptimizable(int predicateCount)
OptTracetraceAddingUnorderedOptimizable in interface OptTracepublic void traceChangingAccessPathForTable(int tableNumber)
OptTracetraceChangingAccessPathForTable in interface OptTracepublic void traceNoStartStopPosition()
OptTracetraceNoStartStopPosition in interface OptTracepublic void traceNonCoveringIndexCost(double cost,
int tableNumber)
OptTracetraceNonCoveringIndexCost in interface OptTracepublic void traceConstantStartStopPositions()
OptTracetraceConstantStartStopPositions in interface OptTracepublic void traceEstimatingCostOfConglomerate(ConglomerateDescriptor cd, int tableNumber)
OptTracetraceEstimatingCostOfConglomerate in interface OptTracepublic void traceLookingForSpecifiedIndex(java.lang.String indexName,
int tableNumber)
OptTracetraceLookingForSpecifiedIndex in interface OptTracepublic void traceSingleMatchedRowCost(double cost,
int tableNumber)
OptTracetraceSingleMatchedRowCost in interface OptTracepublic void traceCostIncludingExtra1stColumnSelectivity(CostEstimate cost, int tableNumber)
OptTracetraceCostIncludingExtra1stColumnSelectivity in interface OptTracepublic void traceNextAccessPath(java.lang.String baseTable,
int predicateCount)
OptTracetraceNextAccessPath in interface OptTracepublic void traceCostIncludingExtraStartStop(CostEstimate cost, int tableNumber)
OptTracetraceCostIncludingExtraStartStop in interface OptTracepublic void traceCostIncludingExtraQualifierSelectivity(CostEstimate cost, int tableNumber)
OptTracetraceCostIncludingExtraQualifierSelectivity in interface OptTracepublic void traceCostIncludingExtraNonQualifierSelectivity(CostEstimate cost, int tableNumber)
OptTracetraceCostIncludingExtraNonQualifierSelectivity in interface OptTracepublic void traceCostOfNoncoveringIndex(CostEstimate cost, int tableNumber)
OptTracetraceCostOfNoncoveringIndex in interface OptTracepublic void traceRememberingJoinStrategy(JoinStrategy joinStrategy, int tableNumber)
OptTracetraceRememberingJoinStrategy in interface OptTracepublic void traceRememberingBestAccessPathSubstring(AccessPath ap, int tableNumber)
OptTracetraceRememberingBestAccessPathSubstring in interface OptTracepublic void traceRememberingBestSortAvoidanceAccessPathSubstring(AccessPath ap, int tableNumber)
OptTracetraceRememberingBestSortAvoidanceAccessPathSubstring in interface OptTracepublic void traceRememberingBestUnknownAccessPathSubstring(AccessPath ap, int tableNumber)
OptTracetraceRememberingBestUnknownAccessPathSubstring in interface OptTracepublic void traceCostOfConglomerateScan(int tableNumber,
ConglomerateDescriptor cd,
CostEstimate costEstimate,
int numExtraFirstColumnPreds,
double extraFirstColumnSelectivity,
int numExtraStartStopPreds,
double extraStartStopSelectivity,
int startStopPredCount,
double statStartStopSelectivity,
int numExtraQualifiers,
double extraQualifierSelectivity,
int numExtraNonQualifiers,
double extraNonQualifierSelectivity)
OptTracetraceCostOfConglomerateScan in interface OptTracepublic void traceCostIncludingCompositeSelectivityFromStats(CostEstimate cost, int tableNumber)
OptTracetraceCostIncludingCompositeSelectivityFromStats in interface OptTracepublic void traceCompositeSelectivityFromStatistics(double statCompositeSelectivity)
OptTracetraceCompositeSelectivityFromStatistics in interface OptTracepublic void traceCostIncludingStatsForIndex(CostEstimate cost, int tableNumber)
OptTracetraceCostIncludingStatsForIndex in interface OptTracepublic void printToWriter(java.io.PrintWriter out)
OptTraceprintToWriter in interface OptTraceprivate Optimizable getOptimizable(int tableNumber)
private TableName getOptimizableName(Optimizable optimizable)
private boolean isBaseTable(Optimizable optimizable)
private boolean isFromTable(Optimizable optimizable)
private TableName makeTableName(java.lang.String schemaName, java.lang.String unqualifiedName, ContextManager cm)
private void printThrowable(java.lang.Throwable t)
private org.w3c.dom.Element createElement(org.w3c.dom.Element parent,
java.lang.String tag,
java.lang.String content)
private java.lang.String formatTimestamp(long timestamp)
private org.w3c.dom.Element formatSkip(org.w3c.dom.Element parent,
java.lang.String skipTag,
java.lang.String reason)
private org.w3c.dom.Element formatPlanCost(org.w3c.dom.Element parent,
java.lang.String type,
int[] planOrder,
int planType,
CostEstimate raw)
private boolean isComplete(int[] joinOrder)
private void formatCost(org.w3c.dom.Element costElement,
CostEstimate raw)
private void formatSelectivity(org.w3c.dom.Element parent,
java.lang.String tag,
int count,
double selectivity)
private void formatJoinOrder(org.w3c.dom.Element parent,
int[] proposedJoinOrder)
private java.lang.String formatPlanSummary(int[] planOrder,
int planType)
Produce a string representation of the plan being considered now. The string has the following grammar:
join :== factor OP factor OP :== "*" | "#" factor :== factor | conglomerateName
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.