oracle没有运行键,Oracle居然没有默认按主键排序。。

躺着读书 说:

呵呵,oracle就是这个规矩。习惯就好。

他有一个原则。这些不加说明的叫做默认行为,而默认行为是可以改动的。

比如说:oracle10g返回的结果是默认排序的,于是你不加order by写了大量的代码。但是有一天数据库升级到了10g release1 你就发现你的程序完全不能运行,错误莫名奇妙。

哦,原来是oracle改掉了这个默认行为,默认不排序了。

只是举例。实际上oracle目前为止都不会自动按主键排序。但是自动排序的sql server 或者mysql 有一天改动了这个默认行为。你是不是要全部重写你的sql呢?

oracle文档化的东西它就不会改动,并且会一直支持。而不是oracle文档化的东西,随时都可能被改掉。说不定一个升级包就改掉了。

不过不按主键自动排序是有性能方面的原因。原因就是,排序是有性能开销的。你可以查看一下不写order by和写了order by语句的执行计划,加了order by 肯定会增加很多的IO和cpu的开销。而你没有必要排序的时候排序了,是不是在浪费性能呢?呵呵。

这就是oracle的另外一个原则:凡是影响数据库速度而不一定会带来好处的东西,oracle一概默认不支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值