美文网首页数据库程序员程序园
Oracle Hint用法整理笔记

Oracle Hint用法整理笔记

作者: smileNicky | 来源:发表于2019-05-01 14:48 被阅读5次

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

    ,可以辅助oracle优化器
    [TOC]

    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.haomeiwen.com/subject/gwtwnqtx.html