浅谈oracle数据库sql物理读高性能问题

在实践中ORACLE数据库SQL物理读(即物理读大小)高会引发性能问题。

      物理读(Physical Reads)从磁盘读取数据块到内存的操作叫物理读,当SGA里的高速缓存(Cache Buffer)里面不存在这些数据块时,就会产生物理读,另外。像全表扫描、磁盘排序等操作也可能产生物理读,原因也是因为ORACLE数据库需要访问的数据块较多,而有些数据块不在内存当中,需要从磁盘读取。

     物理读的单位为数据库块,默认大小为8KB。

     通常相关指标为平均单次执行物理读不得大于500。

     SQL语句物理读高说明需大量从磁盘读取数据,很多情况下会出现性能问题。扫描大表时常容易出现。解决方案:分析SQL语句,优化SQL,创建合适的索引等。

      通过AWR报告可以查看物理读的情况:

查看物理读top10具体的sql情况:


SET LINESIZE 300;
SET PAGESIZE 300;
SET LONG 50000;
 
SELECT *
  FROM (  SELECT sql_fulltext AS sql,
                 SQL_ID,
                 disk_reads / executions AS "Reads/Exec",
                 disk_reads,
                 executions
            FROM V$SQLAREA
           WHERE disk_reads > 1000
        ORDER BY "Reads/Exec" DESC)
 WHERE ROWNUM <= 10;

更多内容请关注公众号“测试小号等闲之辈” ~

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值