oracle的Hint
与优化器模式相关的Hint
1 ALl_ROWS 让优化器启用CBO
/*+ all_rows */
2 first_rows(n) 让优化器启用CBO 模式,而且得到目标sql的执行计划是会选择那些能以最快时间返回n条记录的执行路径
/*+ first_rows */
3 rule 启用RBO
/*+ rule */
与表访问相关
1 /*+ full */ 对目标表执行全表扫描
2 /*+ rowid(tablename) */ 针对单个表的HInt,他的含义是让优化器执行rowid 扫描,只有目标sql中使用了含rowid的where 条件时,rowid hint 才有意义。
与索引访问相关的hint
1 index 对目标表上的目标执行索引扫描操作
/* index (表名 目标索引(可多个)) */
/* index (表名) */
/* index (表名 目标索引对应的列名(可多个)) */
2 no_index 与index 相反
/* no_index (表名 目标索引(可多个)) */
/* no_index (表名) */
3 index_desc 执行索引时,降序扫描
/* index_desc (表名 目标索引(可多个)) */
/* index_desc (表名) */
4 index_combine 对目标表上的多个目标索引执行位图布尔运算
/* index_combine (表名 目标索引(可多个)) */
/* index_combine (表名) */
5 /*+ index_join(表名 目标索引(可多个)) */
/*+ index_join(表名) */
前提条件: select的所有查询列都存在目标表的多个目标索引中
6 and_equal 对目标表的多个目标索引执行 index_merge操作
/*+ and_equal(表名 目标索引(可多个)) */
/*+ and_equal(表名) */
与表连接顺序相关的hint
1 ordered 针对多个目标表,让优化器对多个目标表执行表连接操作时,按照sql的from字句中出现的顺序从左到右依次进行连接
/*+ ordered */
2 leading 针对多个目标表,让优化器将指定的多个表的连接结果作为目标sql表连接过程中的驱动结果集,并且将leading hint 中从左到右出现的第一个目标表作为整个表连接的首个驱动表
/*+ leading(表1 表2 表n) */
与表连接方法相关的Hint
1 use_merge 针对多个目标表,让优化器将我们指定的多个表作为被驱动表与其他表或结果集做排序合并连接
/*+ use_merge(表1 表2 表n) */
/*+ use_merge(表1,表2,...,表n) */
2 no_use_merge 针对多个目标表,不让优化器将我们指定的多个表作为被驱动表与其他表或结果集做排序合并连接
/*+ no_use_merge(表1 表2 表n) */
/*+ no_use_merge(表1,表2,...,表n) */
3 use_nl 针对多个目标表,让优化器将我们指定的多个表作为被驱动表与其他表或结果集做嵌套循环连接
/*+ use_nl(表1 表2 表n) */
/*+ use_nl(表1,表2,...,表n) */
4 no_use_nl 针对多个目标表,不让优化器将我们指定的多个表作为被驱动表与其他表或结果集做嵌套循环连接
/*+ no_use_nl(表1 表2 表n) */
/*+ no_use_nl(表1,表2,...,表n) */
5 use_hash 针对多个目标表,让优化器将我们指定的多个表作为被驱动表与其他表或结果集做哈希连接
/*+ use_hash(表1 表2 表n) */
/*+ use_hash(表1,表2,...,表n) */
6 no_use_hash 针对多个目标表,不让优化器将我们指定的多个表作为被驱动表与其他表或结果集做哈希连接
/*+ no_use_hash(表1 表2 表n) */
/*+ no_use_hash(表1,表2,...,表n) */
7 merge_aj 针对子查询,让优化器对相关目标表执行排序合并反连接
/*+ merge_aj */
8 nl_aj 针对子查询,让优化器对相关目标表执行嵌套循环反连接
/*+ nl_aj */
9 hash_aj 针对子查询,让优化器对相关目标表执行哈希反连接
/*+ hash_aj */
10 merge_sj 针对子查询,让优化器对相关目标表执行排序合并半连接
/*+ merge_sj */
11 nl_sj 针对子查询,让优化器对相关目标表执行嵌套循环半连接
/*+ nl_sj */
12 hash_sj 针对子查询,让优化器对相关目标表执行哈希半连接
/*+ hash_sj */
与查询转换相关的hint
1 use_concat 针对整个SQL的hint ,让优化器对目标sql使用IN_LIST 扩展(IN_List exception )或OR扩展(OR Exception )
/*+ use_concat */
2 no_expand 针对整个SQL的hint ,use_concat 的反义hint
/*+ no_expand */
3 merge 针对单个目标视图的hint,让优化器对目标视图执行视图合并(view merging)
/*+ merge(目标视图) */
如果是内嵌视图,此时的hint不要出现视图名
4 no_merge 针对单个目标视图的hint,是 merge的反义hint
/*+ no_merge(目标视图) */
如果是内嵌视图,此时的hint不要出现视图名
5 unnest 针对子查询的hint,让优化器对目标sql中的子查询执行子查询展开
/*+ unnest */
6 no_unnest 针对子查询的hint,unnest的反义hint
/*+ no_unnest */
7 expand_table 针对单个目标表的hint,让优化器在不考虑成本的情况下对目标表执行表扩展。
/*+ expand_table(目标表) */
8 no_expand_table 针对单个目标表的hint,expand_table的反义hint
/*+ no_expand_table(目标表) */
5 index_ffs 针对单个目标表。 对目标表的目标索引执行索引快速全扫描操作
/* index_ffs (表名 目标索引(可多个)) */
/* index_ffs (表名) */
6 index_join 针对单个目标表。对目标表上的多个目标索引执行 index join 操作
oracle的Hint的更多相关文章
- 【转】Oracle索引HINT的使用
转自:Oracle索引HINT的使用 存储在数据库中数据的分布情况开发人员或管理员比Oracle优化器更加的清楚,在优化器不能作出最有查询路径选择的情况下,使用HINT(提示)人为的固定查 ...
- Oracle index hint syntax
Question: I added an index hint in my query, but the hint is being ignored. What is the correct sy ...
- Oracle 常见hint
Hints 应该慎用,收集相关表的统计信息,根据执行计划,来改变查询方式 只能在SELECT, UPDATE, INSERT, MERGE, or DELETE 关键字后面,只有insert可以用2个 ...
- Oracle索引HINT的使用
存储在数据库中数据的分布情况开发人员或管理员比Oracle优化器更加的清楚,在优化器不能作出最有查询路径选择的情况下,使用HINT(提示)人为的固定查询路径,一定程度能生成更优的执行计划. ...
- oracle parallel_index hint在非分区表的生效
之前没特别注意,在有些场景下希望使用并行索引扫描的时候,发现parallel_index hint并没有生效,于是抽空看了下文档:The PARALLEL_INDEX hint instructs t ...
- [转]Oracle中Hint深入理解
原文地址:http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明 ...
- Oracle中Hint深入理解(原创)
http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明 ...
- Oracle中Hint深入理解
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...
- oracle 初试 hint
最近在研究oracle的视图问题,本来想全转成 物化视图(materialized view)的,这样可以极大提升系统的响应时间,无奈工作量太大,所以就研究了SQL优化的问题. 我这个普通视图 有36 ...
- oracle中hint 详解
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...
随机推荐
- 【转】 IntelliJ IDEA 中 Project 和 Module 的概念及区别
原文地址:https://blog.csdn.net/qq_35246620/article/details/65448689 在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间 ...
- Vue.nextTick()的正确使用
Vue异步执行DOM更新.只要观察导数据变化,Vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变,如果同一个watcher被多次触发,只会一次推入到队列中.这种在缓冲时去除重复数据对于避免 ...
- struts2添加需要的jar包
转自:https://blog.csdn.net/fance611261/article/details/6790737 以前总是在myeclipse中添加jar包的,由于现在转向了eclipse,原 ...
- Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar
转自:https://blog.csdn.net/u011422744/article/details/39851693 在SSH开发,搭建环境的时候,启动tomcat服务器,就报这个异常! 信息: ...
- from表单POST提交nodejs
var form = new formidable.IncomingForm(); form.parse(req, function(err, fields, files) { console.log ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 15. 用户管理
源码的github的地址 https://github.com/solenovex/ASP.NET-Core-MVC-Tutorial-Code 语雀上的人的地址: https://github.co ...
- UVa 1643 Angle and Squares (计算几何)
题意:有n个正方形和一个角(均在第一象限中),使这些正方形与这个角构成封闭的阴影区域,求阴影区域面积的最大值. 析:很容易知道只有所有的正方形的对角形在一条直线时,是最大的,然后根据数学关系,就容易得 ...
- 862. Shortest Subarray with Sum at Least K
Return the length of the shortest, non-empty, contiguous subarray of A with sum at least K. If there ...
- 51nod 1225:余数之和
传送门 题意 略 分析 \(\sum_i^n(n\%i)=\sum_i^n(n-i*n/i)=n^2-\sum_i^ni*n/i\) \(=\sum r\sum_i^ni[n/i==r]\) 可以证明 ...
- 第四篇 .NET高级技术之结构体及值类型引用类型
结构体 在平时的开发中很少自己去写结构体,他是一种值类型的数据.对于结构,不像类那样存在继承,一个结构体不能从另一个结构或类继承.但是结构体从基类Object继承. 语法: //struct是定义结构 ...