文件名称:使用优化器提示-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2024-06-29 04:39:09
达梦,DM7
29.6 使用优化器提示 DM 查询优化器采用基于代价的方法。在估计代价时,主要以统计信息或者普遍的数据 分布为依据。在大多数情况下,估计的代价都是准确的。但在一些比较特殊的场合,例如缺 少统计信息,或统计信息陈旧,或抽样数据不能很好地反映数据分布时,优化器选择的执行 计划不是“最优”的,甚至可能是很差的执行计划。 开发人员和用户对于数据分布是很清楚的,他们往往能知道 SQL语句按照哪种方法执行 会最快。在这种情况下,用户可以提供一种方法,指示优化器按照固定的方法去选择 SQL的 执行计划。 DM把这种人工干预优化器的方法称为 HINT,它使优化器根据用户的需要来生成指定的 执行计划。如果优化器无法生成相应的执行计划,该 HINT将会被忽略。 HINT的常见格式如下所示: SELECT /*+ HINT1 [HINT2]*/ 列名 FROM 表名 WHERE_CLAUSE ; UPDATE 表名 /*+ HINT1 [HINT2]*/ SET 列名 =变量 WHERE_CLAUSE ; DELETE FROM表名 /*+ HINT1 [HINT2]*/ WHERE_CLAUSE ; DM支持的 HINT功能见表 29.1。 表 29.1 HINT功能 HINT类型 名称 备注 路径 HINT INDEX 表使用索引 NO_INDEX 表不使用索引 连接操作 HINT USE_HASH 两表使用哈希连接 NO_USE_HASH 两表不使用哈希连接 USE_MERGE 两表使用归并连接 NO_USE_MERGE 两表不使用归并连接 USE_NL 两表使用嵌套连接 NO_USE_NL 两表不使用嵌套连接 USE_NL_WITH_INDEX 两表使用索引连接 NO_USE_NL_WITH_INDEX 两表不使用索引连接 连接顺序 HINT ORDER 指定表的连接顺序 语 句级 INI 的 HINT LIKE_OPT_FLAG 详见 2.1.1.1的 INI参数说明 VIEW_PULLUP_FLAG STAR_TRANSFORMATION_ENABLED MAX_OPT_N_OR_BEXPS ENABLE_HASH_JOIN ENABLE_INDEX_JOIN ENABLE_MERGE_JOIN RS_CAN_CACHE MAX_OPT_N_TABLES OLAP_FLAG USE_HAGR_FLAG MAX_PARALLEL_DEGREE ENABLE_IN_VALUE_LIST_OPT HAGR_PARALLEL_OPT_FLAG MAX_PHC_BE_NUM OUTER_JOIN_INDEX_OPT_FLAG OUTER_JOIN_FLATING_FLAG