`
isiqi
  • 浏览: 16034438 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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 ;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics