sql优化扫盲

1.oracle扫描的顺序为从下到上,从右到左

 

           所以我们要尽可能的把数据少的表放在后面,交叉表放在后面,最能过滤的条件放在后面

 

2.不要在索引上使用计算和not操作符

 

           索引一旦参与计算或使用了not操作符,oracle将会忽略这个索引

 

3.尽量使用in和and,尽量避免使用or,or会产生大量的过滤 ,直接导致逻辑读大量增加

 

4.必要时使用autotrace(sqlplus中有效,PL/SQL中无效)

 

           命令:set autotrace on;

           规则:尽量减少逻辑读,应该避免物理读,提高缓冲区命中率 ,最好保持在95%以上。

 

           recursive calls      递归调用

           db block gets       数据块读取

           consistent gets    一致性读取

           physical reads      物理读取

           redo size              产生的重做日志大小

 

逻辑读=consistent gets + db block gets

缓冲区命中率=(逻辑读-物理读)/逻辑读

 

一个进程可能对以后能够数据块中多个session。

 

sql优化最重常用的是办法是:审视sql语句

也可以执行这条sql来查找非常耗费空间的sql:

select sql_text ,sharable_mem from v$sql where sharable_mem > '100000' order by sharable_mem ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值