oracle 优化学习笔记_hint

1.用法

语法:/*+ <具体的hint内容> */
位置:紧接着select|insert|update|dalete|merge 后
范围:仅限于它本身所在的query block(跨范围访问需要@指定范围)

SCOTT@regan> select /*+ full(emp) */ * from emp where empno=7369;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20


Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    38 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| EMP  |     1 |    38 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

注意:
指定具体对象时,不能带上该对象所在的schema
指定具体表名时,若该表在对应sql文本中有别名,则应该使用对应的别名
当隐含参数 _OPTIMIZER_IGNORE_HINTS=true 时,会忽略所有hint

2.被忽略的常见情况

  • 使用的hint有语法或者拼写错误
  • 使用的hint无效
  • 使用的hint自相矛盾
  • 使用的hint受到了查询转换的干扰
  • 使用的hint受到了保留关键字的干扰

3.常见hint

3.1 与优化器模式相关的

  • ALL_ROWS
  • FIRST_ROWS(n)
  • RULE

3.2 与表访问相关

  • FULL
  • ROWID

3.3 与索引访问相关

  • INDEX
  • NO_INDEX
  • INDEX_DESC
  • INDEX_COMBINE-位图布尔运算
  • INDEX_FFS
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值