6.3Hint被Oracle忽略的常见情形《基于Oracle的优化(学习笔记)》

由于各种原因导致Hint被Oracle忽略之后,Oracle并不会给出任何提示或者警告,更不会报错。

 

情形一:使用的Hint有语法或者拼写错误。

 

情形二:使用的Hint无效

对于非分区索引而言,索引范围扫描或者索引全扫描都不可能并行执行。

哈希连接只适用于等值连接条件,不等值的连接条件对哈希而言是没有意义的。

 

情形三:使用的Hint自相矛盾

Oracle只是将自相矛盾的Hint全部忽略掉,但如果你使用的组合Hint中还有其他有效Hint,则这些有效Hint不受影响。

 

情形四:使用的Hint受到了查询转换的干扰。

 

情形五:使用的Hint受到了保留关键字的干扰。

Oracle再解析Hint时,是按照从左到右的顺序进行的,如果遇到的词是Oracle的保留关键字,则Oracle将忽略这个次以及之后的所有词;如果遇到的词既不是关键字也不是Hint,就忽略该词;如果遇到的词是有效的Hint,那么Oracle就会保留该Hint。

 

组合Hint中各个Hint间不要使用逗号“,”来彼此分隔(而应该使用空格来彼此分割),否则可能会导致该组合Hint中的部分Hint被Oracle忽略。

尽量不要再组合Hint中同时混写有效的Hint和自定义的注释,如果非要在组合Hint中写自定义的注释,则最好将他们写道组合Hint的最末尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值