亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? optimizer.java

?? derby database source code.good for you.
?? JAVA
字號:
/*   Derby - Class org.apache.derby.iapi.sql.compile.Optimizer   Copyright 1997, 2004 The Apache Software Foundation or its licensors, as applicable.   Licensed under the Apache License, Version 2.0 (the "License");   you may not use this file except in compliance with the License.   You may obtain a copy of the License at      http://www.apache.org/licenses/LICENSE-2.0   Unless required by applicable law or agreed to in writing, software   distributed under the License is distributed on an "AS IS" BASIS,   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the License for the specific language governing permissions and   limitations under the License. */package org.apache.derby.iapi.sql.compile;import org.apache.derby.iapi.sql.dictionary.DataDictionary;import org.apache.derby.iapi.sql.dictionary.TableDescriptor;import org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor;import org.apache.derby.iapi.error.StandardException;import org.apache.derby.iapi.util.JBitSet;/** * Optimizer provides services for optimizing a query. * RESOLVE: *	o  Need to figure out what to do about subqueries, figuring out *	   their attachment points and how to communicate them back to the *	   caller. */public interface Optimizer {	/**		Module name for the monitor's module locating system.	 */	String MODULE = "org.apache.derby.iapi.sql.compile.Optimizer";	/**		Property name for controlling whether to do join order optimization.	 */	String JOIN_ORDER_OPTIMIZATION = "derby.optimizer.optimizeJoinOrder";	/**		Property name for controlling whether to do rule-based optimization,		as opposed to cost-based optimization.	 */	String RULE_BASED_OPTIMIZATION =						"derby.optimizer.ruleBasedOptimization";	/**		Property name for controlling whether the optimizer ever times out		while optimizing a query and goes with the best plan so far.	 */	String NO_TIMEOUT = "derby.optimizer.noTimeout";	/**		Property name for controlling the maximum size of memory (in KB)		the optimizer can use for each table.  If an access path takes		memory larger than that size for a table, the access path is skipped.		Default is 1024 (KB).	 */	String MAX_MEMORY_PER_TABLE = "derby.language.maxMemoryPerTable";	/**	   Property name for disabling statistics use for all queries.	*/	String USE_STATISTICS = "derby.language.useStatistics";	/** Indicates a "normal" plan that is not optimized to do sort avoidance */	int NORMAL_PLAN = 1;	/** Indicates a sort-avoidance plan */	int SORT_AVOIDANCE_PLAN = 2;	// optimizer trace	public static final int STARTED = 1;	public static final int TIME_EXCEEDED =2;	public static final int NO_TABLES = 3;	public static final int COMPLETE_JOIN_ORDER = 4;	public static final int COST_OF_SORTING = 5;	public static final int NO_BEST_PLAN = 6;	public static final int MODIFYING_ACCESS_PATHS = 7;	public static final int SHORT_CIRCUITING = 8;	public static final int SKIPPING_JOIN_ORDER = 9;	public static final int ILLEGAL_USER_JOIN_ORDER = 10;	public static final int USER_JOIN_ORDER_OPTIMIZED = 11;	public static final int CONSIDERING_JOIN_ORDER = 12;	public static final int TOTAL_COST_NON_SA_PLAN = 13;	public static final int TOTAL_COST_SA_PLAN = 14;	public static final int TOTAL_COST_WITH_SORTING = 15;	public static final int CURRENT_PLAN_IS_SA_PLAN = 16;	public static final int CHEAPEST_PLAN_SO_FAR = 17;	public static final int PLAN_TYPE = 18;	public static final int COST_OF_CHEAPEST_PLAN_SO_FAR = 19;	public static final int SORT_NEEDED_FOR_ORDERING = 20;	public static final int REMEMBERING_BEST_JOIN_ORDER = 21;	public static final int SKIPPING_DUE_TO_EXCESS_MEMORY = 22;	public static final int COST_OF_N_SCANS = 23;	public static final int HJ_SKIP_NOT_MATERIALIZABLE = 24;	public static final int HJ_SKIP_NO_JOIN_COLUMNS = 25;	public static final int HJ_HASH_KEY_COLUMNS = 26;	public static final int CALLING_ON_JOIN_NODE = 27;	public static final int CONSIDERING_JOIN_STRATEGY = 28;	public static final int REMEMBERING_BEST_ACCESS_PATH = 29;	public static final int NO_MORE_CONGLOMERATES = 30;	public static final int CONSIDERING_CONGLOMERATE = 31;	public static final int SCANNING_HEAP_FULL_MATCH_ON_UNIQUE_KEY = 32;	public static final int ADDING_UNORDERED_OPTIMIZABLE = 33;	public static final int CHANGING_ACCESS_PATH_FOR_TABLE = 34;	public static final int TABLE_LOCK_NO_START_STOP = 35;	public static final int NON_COVERING_INDEX_COST = 36;	public static final int ROW_LOCK_ALL_CONSTANT_START_STOP = 37;	public static final int ESTIMATING_COST_OF_CONGLOMERATE = 38;	public static final int LOOKING_FOR_SPECIFIED_INDEX = 39;	public static final int MATCH_SINGLE_ROW_COST = 40;	public static final int COST_INCLUDING_EXTRA_1ST_COL_SELECTIVITY = 41;	public static final int CALLING_NEXT_ACCESS_PATH = 42;	public static final int TABLE_LOCK_OVER_THRESHOLD = 43;	public static final int ROW_LOCK_UNDER_THRESHOLD = 44;	public static final int COST_INCLUDING_EXTRA_START_STOP = 45;	public static final int COST_INCLUDING_EXTRA_QUALIFIER_SELECTIVITY = 46;	public static final int COST_INCLUDING_EXTRA_NONQUALIFIER_SELECTIVITY = 47;	public static final int COST_OF_NONCOVERING_INDEX = 48;	public static final int REMEMBERING_JOIN_STRATEGY = 49;	public static final int REMEMBERING_BEST_ACCESS_PATH_SUBSTRING = 50;	public static final int REMEMBERING_BEST_SORT_AVOIDANCE_ACCESS_PATH_SUBSTRING = 51;	public static final int REMEMBERING_BEST_UNKNOWN_ACCESS_PATH_SUBSTRING = 52;	public static final int COST_OF_CONGLOMERATE_SCAN1 = 53;	public static final int COST_OF_CONGLOMERATE_SCAN2 = 54;	public static final int COST_OF_CONGLOMERATE_SCAN3 = 55;	public static final int COST_OF_CONGLOMERATE_SCAN4 = 56;	public static final int COST_OF_CONGLOMERATE_SCAN5 = 57;	public static final int COST_OF_CONGLOMERATE_SCAN6 = 58;	public static final int COST_OF_CONGLOMERATE_SCAN7 = 59;	public static final int COST_INCLUDING_COMPOSITE_SEL_FROM_STATS= 60;	public static final int COMPOSITE_SEL_FROM_STATS = 61;	public static final int COST_INCLUDING_STATS_FOR_INDEX = 62;	/**	 * Iterate through the permutations, returning false when the permutations	 * are exhausted.	 * NOTE - Implementers are responsible for hiding tree pruning of permutations	 * behind this method call.	 *	 * @return boolean	True - An optimizable permutation remains.	 *					False - Permutations are exhausted.	 *	 * @exception StandardException		Thrown on error	 */	public boolean getNextPermutation() throws StandardException;	/**	 * Iterate through the "decorated permutations", returning false when they	 * are exhausted.	 * NOTE - Implementers are responsible for hiding tree pruning of access	 * methods behind this method call.	 *	 * @return boolean	True - An optimizable decorated permutation remains.	 *					False - Decorated permutations are exhausted.	 *	 * @exception StandardException		Thrown on error	 */	public boolean getNextDecoratedPermutation() throws StandardException;	/**	 * Cost the current permutation.	 * Caller is responsible for pushing all predicates which can be evaluated 	 * prior to costing.	 *	 * @return Nothing.	 *	 * @exception StandardException		Thrown on error	 */	public void costPermutation() throws StandardException;	/**	 * Cost the current Optimizable with the specified OPL.	 * Caller is responsible for pushing all predicates which can be evaluated 	 * prior to costing.	 *	 * @param optimizable	The Optimizable	 * @param td			TableDescriptor of the Optimizable	 * @param cd			The ConglomerateDescriptor for the conglom to cost	 *						(This should change to an object to represent	 *						access paths, but for now this is OK).	 * @param predList		The OptimizablePredicateList to apply	 * @param outerCost		The cost of the tables outer to the one being	 *						optimizer - tells how many outer rows there are.	 * @return Nothing.	 *	 * @exception StandardException		Thrown on error	 */	public void	costOptimizable(Optimizable optimizable,								TableDescriptor td, 								ConglomerateDescriptor cd,								OptimizablePredicateList predList,								CostEstimate outerCost)			throws StandardException;	/**	 * Consider the cost of the given optimizable.  This method is like	 * costOptimizable, above, but it is used when the Optimizable does	 * not need help from the optimizer in costing the Optimizable (in practice,	 * all Optimizables except FromBaseTable use this method.	 *	 * Caller is responsible for pushing all predicates which can be evaluated 	 * prior to costing.	 *	 * @param optimizable	The Optimizable	 * @param predList		The OptimizablePredicateList to apply	 * @param estimatedCost	The estimated cost of the given optimizable	 * @param outerCost		The cost of the tables outer to the one being	 *						optimizer - tells how many outer rows there are.	 * @return Nothing.	 *	 * @exception StandardException		Thrown on error	 */	public void	considerCost(Optimizable optimizable,							OptimizablePredicateList predList,							CostEstimate estimatedCost,							CostEstimate outerCost)			throws StandardException;	/**	 * Return the DataDictionary that the Optimizer is using.	 * This is useful when an Optimizable needs to call optimize() on	 * a child ResultSetNode.	 * 	 * @return DataDictionary	DataDictionary that the Optimizer is using.	 */	public DataDictionary getDataDictionary();	/**	 * Modify the access path for each Optimizable, as necessary.  This includes	 * things like adding result sets to translate from index rows to base rows.	 *	 * @exception StandardException		Thrown on error	 */	public void modifyAccessPaths() throws StandardException;	/** Get a new CostEstimate object */	public CostEstimate newCostEstimate();	/** Get the estimated cost of the optimized query */	public CostEstimate getOptimizedCost();	/**	 * Get the final estimated cost of the optimized query.  This	 * should be the cost that corresponds to the best overall join	 * order chosen by the optimizer, and thus this method should	 * only be called after optimization is complete (i.e. when	 * modifying access paths).	 */	public CostEstimate getFinalCost();	/**	 * Prepare for another round of optimization.	 *	 * This method is called before every "round" of optimization, where	 * we define a "round" to be the period between the last time a call to	 * getOptimizer() (on either a ResultSetNode or an OptimizerFactory)	 * returned _this_ Optimizer and the time a call to this Optimizer's	 * getNextPermutation() method returns FALSE.  Any re-initialization	 * of state that is required before each round should be done in this	 * method.	 */	public void prepForNextRound();	/**	 * Set the estimated number of outer rows - good for optimizing nested	 * optimizables like subqueries and join nodes.	 */	public void setOuterRows(double outerRowCount);	/**	 * Get the number of join strategies supported by this optimizer.	 */	public int getNumberOfJoinStrategies();	/**	 * Get the maximum number of estimated rows touched in a table before	 * we decide to open the table with table locking (as opposed to row	 * locking.	 */	public int tableLockThreshold();	/**	 * Gets a join strategy by number (zero-based).	 */	JoinStrategy getJoinStrategy(int whichStrategy);	/**	 * Gets a join strategy by name.  Returns null if not found.	 * The look-up is case-insensitive.	 */	JoinStrategy getJoinStrategy(String whichStrategy);	/**	 * Optimizer trace.	 */	public void trace(int traceFlag, int intParam1, int intParam2,					  double doubleParam, Object objectParam1);	/**	 * Get the level of this optimizer.	 *	 * @return The level of this optimizer.	 */	public int getLevel();	/**	 * Tells whether any of the tables outer to the current one	 * has a uniqueness condition on the given predicate list,	 * and if so, how many times each unique key can be seen by	 * the current table.	 *	 * @param predList		The predicate list to check	 *	 * @return	<= 0 means there is no uniqueness condition	 *			> 0 means there is a uniqueness condition on an	 *			outer table, and the return value is the reciprocal of	 *			the maximum number of times the optimizer estimates that each	 *			unique key will be returned. For example, 0.5 means the	 *			optimizer thinks each distinct join key will be returned	 *			at most twice.	 *	 * @exception StandardException		Thrown on error	 */	double uniqueJoinWithOuterTable(OptimizablePredicateList predList)			throws StandardException;		/** 	 * If statistics should be considered by the optimizer while optimizing 	 * a query. The user may disable the use of statistics by setting the	 * property derby.optimizer.useStatistics or by using the property	 * useStatistics in a query.	 *	 * @see #USE_STATISTICS	 */	public boolean useStatistics();    /**     * @return the maximum number of bytes to be used per table.     */    public int getMaxMemoryPerTable();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91原创在线视频| 亚洲成av人片观看| 精品免费日韩av| 91精品国产综合久久久久久漫画 | 2024国产精品视频| 欧美丰满少妇xxxxx高潮对白| 欧美性生活大片视频| 91黄色激情网站| 欧美军同video69gay| 欧美高清视频不卡网| 欧美一区二区免费| 欧美一区二区在线不卡| 欧美日韩精品一区二区| 欧美日韩第一区日日骚| 欧美在线制服丝袜| 在线免费观看日本欧美| 日本韩国一区二区三区视频| 成人国产精品免费观看| 99久精品国产| 亚洲午夜国产一区99re久久| 国产精品免费视频观看| 国产mv日韩mv欧美| 色婷婷综合久色| 91美女片黄在线观看91美女| 国产一区日韩二区欧美三区| 免费观看在线综合| 1024国产精品| 亚洲免费在线视频一区 二区| 色综合网色综合| 本田岬高潮一区二区三区| 一区二区久久久| 麻豆成人久久精品二区三区红 | 国产激情偷乱视频一区二区三区| 九色综合国产一区二区三区| 久久99精品国产麻豆不卡| 蜜桃av噜噜一区| 久久精品国产久精国产爱| 色狠狠一区二区三区香蕉| 日本道色综合久久| 欧美日韩精品一区二区在线播放| 欧美日韩成人在线| 欧美久久久久中文字幕| 欧美在线视频你懂得| 777欧美精品| 久久一区二区三区四区| 久久伊人中文字幕| 91精品在线麻豆| 日韩久久久精品| 久久亚洲一区二区三区明星换脸 | 国产精品嫩草影院com| 中文字幕一区二区三中文字幕| 中文字幕五月欧美| 亚洲大片精品永久免费| 久久激情综合网| 福利一区福利二区| 在线免费不卡电影| 日韩欧美一二区| 3atv在线一区二区三区| 国产女主播在线一区二区| 一区二区三区在线视频免费| 国产精品久久久一本精品 | 91精品国产综合久久久久久久| 欧美一区二区三区视频免费| 亚洲国产精品传媒在线观看| 一区二区三区在线免费观看| 免费人成精品欧美精品| 成人国产精品免费观看视频| 日韩精品一区二区三区在线| 国产欧美日韩三区| 日韩有码一区二区三区| 成人一区二区三区在线观看| 亚洲精品一区二区三区精华液| 夜夜嗨av一区二区三区| 国产一区二区三区在线观看精品| 国产成人免费网站| 日本一区二区久久| 免费的国产精品| 欧美性猛交xxxx黑人交| 国产精品电影一区二区| 日韩av网站免费在线| 99久久婷婷国产综合精品电影| 91精品国产高清一区二区三区| 日韩高清一区二区| 在线观看视频一区二区欧美日韩| 久久久亚洲午夜电影| 国产女主播在线一区二区| 午夜精品久久久久久| 色丁香久综合在线久综合在线观看| 精品国产91久久久久久久妲己| 国产成人午夜高潮毛片| 日韩一区二区电影在线| 一区二区免费在线播放| 色婷婷精品大在线视频| 日韩毛片高清在线播放| 国产成人精品一区二区三区四区 | 99久久er热在这里只有精品15| 日韩精品一区二| 日本视频中文字幕一区二区三区| 色欧美日韩亚洲| 亚洲免费在线播放| eeuss鲁片一区二区三区| 国产精品三级电影| 日本vs亚洲vs韩国一区三区| 久久综合狠狠综合久久综合88| 日本成人中文字幕在线视频 | 91一区二区在线观看| 亚洲少妇最新在线视频| 97超碰欧美中文字幕| 亚洲视频免费观看| 成人在线一区二区三区| 亚洲午夜激情网页| 欧美视频在线一区| 亚洲国产精品天堂| 色狠狠一区二区三区香蕉| 日韩美女久久久| 91视频免费看| 亚洲成人激情综合网| 欧美人狂配大交3d怪物一区| 日韩电影网1区2区| 欧美电影免费观看高清完整版 | 色88888久久久久久影院野外| 亚洲黄色免费网站| 91豆麻精品91久久久久久| 欧美成人一区二区| 国产一区二区三区日韩| 久久蜜臀精品av| 本田岬高潮一区二区三区| 日韩毛片精品高清免费| 欧美日韩黄视频| 成人免费三级在线| 亚洲综合激情另类小说区| 91精品国产综合久久精品性色| 久久国产日韩欧美精品| 91精品国产综合久久久久久久久久| 日本成人超碰在线观看| 国产偷v国产偷v亚洲高清| 99久久伊人久久99| 亚洲美女区一区| 中文字幕av不卡| 在线亚洲高清视频| 捆绑调教美女网站视频一区| 婷婷亚洲久悠悠色悠在线播放 | 亚洲伦理在线精品| 成人av网在线| 亚洲国产精品久久人人爱| 精品欧美久久久| 丁香激情综合五月| 久久av老司机精品网站导航| 亚洲日本一区二区三区| 精品国产污网站| 精品国产不卡一区二区三区| 欧美视频在线播放| 99久久精品久久久久久清纯| 亚洲一区二区五区| 国产精品乱码人人做人人爱| 日韩免费视频线观看| 久久99久久精品欧美| 国产乱码精品一区二区三区av | 成人欧美一区二区三区黑人麻豆 | 国产精品一区二区久久不卡| 亚洲综合视频在线观看| 亚洲成av人片在线观看无码| 日韩美女啊v在线免费观看| 欧美三级电影网站| www.欧美日韩国产在线| 成人手机在线视频| 国产在线不卡一区| 免费成人结看片| 日韩中文字幕1| 樱桃视频在线观看一区| 国产精品欧美久久久久一区二区| 日韩区在线观看| 91精品国产色综合久久不卡电影 | www.激情成人| 日本一二三四高清不卡| 国产精品久久久久久久久免费樱桃 | 国产日韩欧美在线一区| gogo大胆日本视频一区| 欧美调教femdomvk| 色婷婷国产精品| 色综合久久综合网97色综合| 懂色av一区二区三区蜜臀 | 欧美一级片在线观看| 色菇凉天天综合网| 国产成人午夜精品影院观看视频| 国产一区二区三区高清播放| 国产精品中文欧美| 国产毛片精品视频| 国产精华液一区二区三区| jizzjizzjizz欧美| 91成人国产精品| 日本韩国精品一区二区在线观看| 91在线无精精品入口| 午夜私人影院久久久久| 亚洲综合视频网| 亚洲午夜精品网| 日韩专区一卡二卡| 精品一区二区av| 色偷偷久久人人79超碰人人澡| 色婷婷综合久色|