FIRST_ROWS和FIRST_ROWS_n的区别

FIRST_ROWS和FIRST_ROWS_n的区别

[@more@]

FIRST_ROWSFIRST_ROWS_n的区别

1、 FIRST_ROWS_n是在9i之后引入的,应该说FIRST_ROWS模式在9i之后就应该被废弃,之所以还使用主要是因为为了向下兼容的目的。

2、 FIRST_ROWS是为了返回前几行,应该说是FIRST_ROWS_1相似。

3、 FIRST_ROWS这种模式使用的过程中,CBO会使用一些约束,而这些约束将会限制CBO对表之间的连接模式的选择,其中就有一个是对hash连接的选择,而使用嵌套连接的方式,这样就需要对一个表进行全表扫描,或者使用索引。例如排序order bygroup by的时候。这时候系统会使用索引,而且往往这些索引的时候,会是使得SQL的执行花费比较高。就是说在需要排序的时候,OracleFIRST_ROWS这种模式下会使用索引(排序的列上的索引),无论这个索引的使用是否高和低。

这是Oracle的一个bug,而这个在11g中就没有存在,但是由于这个问题的存在(8910),所以建议慎重使用这个参数的使用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/222350/viewspace-1001438/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/222350/viewspace-1001438/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值