• oracle hint 使用


    --和优化器相关的hint

    1、/*+ ALL_ROWS */
    表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
     SELECT /*+ ALL+_ROWS */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

     2、/*+ FIRST_ROWS(n) */
    表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
     SELECT /*+FIRST_ROWS(20) */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 

     3、/*+ RULE */
    表明对语句块选择基于规则的优化方法.
     SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

    --和访问路径相关的hint

    1、/*+ FULL(TABLE) */
    表明对表选择全局扫描的方法.
     SELECT /*+FULL(A) */ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT'; 

    2、/*+ INDEX(TABLE INDEX_NAME) */
    表明对表选择索引的扫描方法.
     SELECT /*+INDEX(BSEMPMS SEX_INDEX) */ * FROM BSEMPMS WHERE SEX='M'; 

    5、/*+ INDEX_ASC(TABLE INDEX_NAME)*/
    表明对表选择索引升序的扫描方法.
     SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ * FROM BSEMPMS WHERE DPT_NO='SCOTT';

    6、/*+ INDEX_COMBINE*/
    为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式.
     SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI) */  * FROM BSEMPMS
     WHERE SAL<5000000 AND HIREDATE 

    7、/*+ INDEX_JOIN(TABLE INDEX_NAME1 INDEX_NAME2) */
    当谓词中引用的列都有索引的时候,可以通过指定采用索引关联的方式,来访问数据
     select /*+ index_join(t t_ind t_bm) */ id from t where id=100 and object_name='EMPLOYEES' 

    8、/*+ INDEX_DESC(TABLE INDEX_NAME)*/

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

    SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ *    FROM BSEMPMS WHERE DPT_NO='SCOTT'; 

    9、/*+ INDEX_FFS(TABLE INDEX_NAME) */
    对指定的表执行快速全索引扫描,而不是全表扫描的办法.
     SELECT /* + INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';

  • 相关阅读:
    alkhaser学习笔记(一)Anti Debug
    8086 汇编指令手册查询(转)
    QueryUserAPC Ring3下 APC注入
    内存分配(malloc,new,VirtualAlloc,HeapAlloc,GlobalAlloc,LocalAlloc)区别与注意
    error C2220: 警告被视为错误 没有生成“object”文件 (转)
    消息队列
    分页存储过程(对有主键的表效率极高)
    asp.net vs2010 设计报表rdlc时,未能加载文件或程序集
    【翻译】创建ViewState特征的自动ViewState属性
    中英文字符的截取
  • 原文地址:https://www.cnblogs.com/ss-33/p/8706861.html
Copyright © 2020-2023  润新知