首页 > 数据库技术 > 详细

Oracle Hint用法整理笔记

时间:2019-05-01 15:26:44      阅读:175      评论:0      收藏:0      [点我收藏+]

整理工作中用到的Hint,不定时更新,Hint是oracle早期因为oracle优化器还不是很完善加上去的

,可以辅助oracle优化器

1、/+ result_cache /

设置缓存,特殊业务场景才可以使用

2、/+ connect_by_filtering /

强制使用联合型的关联型(CONNECT BY WITH FILTERING)
,ps:详情

见:https://smilenicky.blog.csdn.net/article/details/89604262

3、/+ no_unnset /

双重否定表示肯定,即让子查询展开,让它嵌套(nest)在里面

4、/+ index(表别名 索引名) /

强制索引,有时候可以使用,不过有时候可以关了基数反馈机制

5、/+ INDEX_FFS(表别名 索引名) /

对指定的表执行快速全索引扫描,而不是全表扫描的办法

6、/+ INDEX_DESC(表别名 索引名 ) /

表明对表选择索引降序的扫描方法

7、/+ INDEX_ASC(表别名 索引名) /

表明对表选择索引升序的扫描方法

8、/+ INDEX_COMBINE /

为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布

尔组合方式

9、/+ INDEX_JOIN(表别名 索引名) /

提示明确命令优化器使用索引作为访问路径

10、/+ ADD_EQUAL 表别名 索引名1,索引名2,... /

提示明确进行执行规划的选择,将几个单列索引的扫描合起来
eg:

SELECT /*+INDEX_FFS(e IN_ENAME,IN_DEPTNO)*/
 *
  FROM emp e
 WHERE e.ename = 'CLERK'
   AND e.deptno = '20';

11、/+ ordered use_nl(dept) /

强制使用联合型的关联型(NL),将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表

12、/+ ALL_ROWS /

表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化

13、/+FIRST_ROWS/

表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化

14、/+ CHOOSE /

表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;

15、/+ RULE /

表明对语句块选择基于规则的优化方法

16、/+ FULL(TABLE) /

表明对表选择全局扫描的方法

17、/+ ROWID(TABLE) /

提示明确表明对指定表根据ROWID进行访问

18、/+ USE_HASH(TABLE) /

将指定的表与其他行源通过哈希连接方式连接起来

Oracle Hint用法整理笔记

原文:https://www.cnblogs.com/mzq123/p/10799841.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!