oracle 优化器可用提示

1. 执行路径提示

 ALL_ROWS

 FIRST_ROWS(n)

 

2.访问方法提示

FULL

INDEX、INDEX_ASC、INDEX_DESC

NO_INDEX、NO_INDEX_FFS、NO_INDEX_SS

INDEX_COMBINE

INDEX_JOIN

INDEX_FFS      #实行索引的快速全扫描,全部的索引值不经过排序就被读出来。INDEX_FFS表示只访问索引,不访问对应的表(换言之,就是不回表)

INDEX_SS、INDEX_SS_ASC、INDEX_SS_DESC

 

3、查询转换提示

FACT、NO_FACT

MERGE、NO_MERGE

USE_CONCAT、NO_EXPAND

NO_QUERY_TRANSFORMATION

REWRITE、NO_REWRITE

STAR_TRANSFORMATION、NO_STAR_TRANSFORMATION

UNNEST、NO_UNNEST

 

4、连接操作提示

LEADING、

ORDERED        #表示强调表的连接顺序

USE_HASH、NO_USE_HASH       #将来自多个表的很多行连接在一起的最快途径,需要大量的内存。用其中一个表的结果遍历连接表的结果。所不同是:第二个表是放在内存里的,它通常应该两个表较小的那个。从employees表返回的行和这些行在departments表中匹配的行一起处理,这些匹配的行被哈希到内存中。departments中匹配到第一行就立即返回给用户,而不是等全部结果再返回。该方法为大的结果集提供最佳的响应时间。

USE_MERGE、NO_USE_MERGE     #表示优化器使用 merge join操作。两个表返回的行均会被排好序,然后合并形成最终的结果集;每个行集都是先排好序然后进行归并。

USE_NL、USE_NL_WITH_INEX、NO_USE_NL      #USE_NL 表示嵌套循环

 

5、并行执行提示

PARALLEL、NO_PARALLEL

PARALLEL_INDEX、NO_PARALLEL_INDEX

 

6、其他提示

APPEND、NOAPPEND

CACHE、NOCACHE       #将全表扫描全部缓存到内存中,未来查询访问该表时,就会在内存中找到他,而不是扫描磁盘。

DIRVING_SITE

DYNAMIC_SAMPLING

PUSH_PRED\NO_PUSH_PRED

PUSH_SUBQ\NO_PUSH_SUBQ

RESULT_CACHE\NO_RESULT_CACHE

 

用法示例:

1、select   /*+  FLULL(table) */   col1,.........

2、select  /*+ index(employees emp_id_pk)  */  col1,........

3、select /*+  FULL(EMPLOYESS) CACHE(employees) */

4、select /*+ ALL_ROWS */ col1,.....

5、select /*+  NO_INDEX(tabname idx1)  INDEX(tabname idx2) */

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我曾阿牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值