我是靠谱客的博主 斯文万宝路,最近开发中收集的这篇文章主要介绍oracle distinct 优化 no_merge,DM7 达梦数据库 查询优化 -- HINT 提示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在上节看了DM 执行计划的信息:

https://www.cndba.cn/dave/article/3633

这里看下hint的相关用法。

1 Hint 概述

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 ;

如果 HINT 的语法没有写对或指定的值不正确,DM 并不会报错,而是直接忽略 HINT 继续执行。

通过 V$HINT_INI_INFO 动态视图查询 DM 支持的 HINT。HINT 参数分为两类, HINT_TYPE 为“OPT”表示分析阶段使用的参数;HINT_TYPE 为“EXEC”表

最后

以上就是斯文万宝路为你收集整理的oracle distinct 优化 no_merge,DM7 达梦数据库 查询优化 -- HINT 提示的全部内容,希望文章能够帮你解决oracle distinct 优化 no_merge,DM7 达梦数据库 查询优化 -- HINT 提示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部