Oracle中SQL性能优化(持续更新)

Oracle中SQL性能优化

一:函数使用会造成效率上的不同

decode函数相当于case when 但是decode从效率上来讲是强于case when的,但是从个人使用的角度来说case when的使用可以更加多样化,这一点强于decode,两者的选择还是从现实中抉择。
删除数据的角度来说,可以使用 truncate和delete和drop,从效率来说truncate最快,这是将数据对应的表空间都直接删除了,delete只是删除数据,并未删除表空间,drop虽然也能达到删除数据的效果,不过将会把表都一起删除。
删除语句慎用!!!!!
执行完删除语句最后删除或是注释,否则一个失误将会造成严重后果!!

二:in、not in 和exists、not exists效率上的不同

如果查询的两个表大小差不多,那么用in和exists差别不大;如果两个表中一个较小一个较大,则子查询表比主表大的用exists,子查询表比主表小的用in

如果查询语句使用了not in,那么对内外表都进行全表扫描,没有用到索引;而not exists的子查询依然能用到表上的索引。所以无论哪个表大,用not exists都比not in 要快

三:SQL语句的规范性也会造成效率的不同

在oracle中执行SQL,总是会先解析SQL,会将小写字母转换成大写字母,所以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值