oracle调整cpu,ORACLE CPU过高的一次调整过程

本文记录了一次Oracle数据库CPU使用过高的调整过程,主要问题由FOR UPDATE引发的LATCH等待。通过解析统计、等待事件分析、SQL优化、索引建立等方法,成功降低了CPU负载。调整措施包括:减少无谓的解析,优化SQL以减少I/O,针对特定SQL设置BUFFER_POOL,分析并优化等待事件,以及监控Session的CPU利用率。
摘要由CSDN通过智能技术生成

发现CPU占用率一般都维持在90%以上,由于大量使用FOR UPDATE,造成大量LATCH等等待现象,其中某些多线程SQL又运行非常频繁。很久以前就发现这些问题,给出相对意见,建议不采用FOR UPDATE或在FOR UPDATE上加NOWAIT,由于项目进程问题一直没进行程序修改,决定在这次解决掉,以解后顾之忧。调整前要知道如下问题1,CPU是多少MHZ

2,SERVER端的CPU是否有负荷较重3,CLIENT端的CPU是否有负荷较重4,空闲时间(如半夜)CPU使用率是否超过15%,如果超过则需要特别注意了5,CPU的PEAK LOAD

6,CPU的IDLE STATE影响CPU的因素1,高的无必要的解析会代价昂贵。发现那些SQL运行了大量的PARSE

select sql_text, parse_calls, executions from v$sqlarea order by parse_calls desc;

SYS的总的PARSE情况select name, value from v$sysstat where name = ’parse count%’;只有硬解析才能减少,可以绑定变量,或增加每一个SESSION的CACHED CURSORS。2,导致大量I/O的SQL也会明显占用CPU,如没有INDEX。BUFFER GETS一般会同CPU一块增长。可以通过v$sqlarea发现buffer_gets

3,其他等待时间,可以通过v$sesstat,v$sysstat查看#VMSTAT 5 5的CPU部分us user用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值