整理工作中用到的Hint,不定时更新,Hint是oracle早期因为oracle优化器还不是很完善加上去的,可以辅助oracle优化器,Hint 是Oracle 提供的一种SQL语法,常用于SQL调优,通过Hint强行改变Oracle的执行计划,从而实现sql调优
设置缓存,特殊业务场景才可以使用
强制使用联合型的关联型(CONNECT BY WITH FILTERING)
,ps:详情
见:https://smilenicky.blog.csdn.net/article/details/89604262
双重否定表示肯定,即让子查询展开,让它嵌套(nest)在里面
强制索引,有时候可以使用,不过有时候可以关了基数反馈机制
对指定的表执行快速全索引扫描,而不是全表扫描的办法
表明对表选择索引降序的扫描方法
表明对表选择索引升序的扫描方法
为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式
提示明确命令优化器使用索引作为访问路径
提示明确进行执行规划的选择,将几个单列索引的扫描合起来
eg:
SELECT /*+INDEX_FFS(e IN_ENAME,IN_DEPTNO)*/
*
FROM emp e
WHERE e.ename = 'CLERK'
AND e.deptno = '20';
强制使用联合型的关联型(NL),将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
表明对语句块选择基于规则的优化方法
表明对表选择全局扫描的方法
提示明确表明对指定表根据ROWID进行访问
将指定的表与其他行源通过哈希连接方式连接起来
强制SQL取消并行特性,并行特性有时候很影响系统性能,不要特意使用
并行度是数字的,一般并行特性是比较容易影响系统性能的,不能滥用,除非特殊场景
表明对指定表根据ROWID进行访问,ROWID是一个伪列,通过ROWID定位查找速度更快,可以用于SQL调优