ORACLE CPU利用率过高的解决步骤



ORACLE CPU利用率高的解决方案

1、      找到利用率高的进程号PID

2、      查看利用率高的进程在干什么

SQL>select sql_text,spid,v$session.program,process from v$sqlarea,v$session,v$process where v$sqlarea.address=v$session.sql_address and v$sqlarea.hash_value=v$session.sql_hash_value and v$session.paddr=v$process.addr and v$process.spid in(PID);

3、      看看数据库的等待事件都有些什么

SQL>select sid,event,p1,p1text from v$session_wait;

看看等待事件由什么进程造成的

SQL>select spid from v$process where addr in(select paddr from v$session where sid in(84,102,101));

利用一下脚本可以由已知session的SID来获得SQL语句

SQL>select sql_text from v$sql_text a where a.hash_value=(select sql_hash_value from v$session b where b.SID=’&sid’) order by piect ASC;

4、如果是latch原因的话

I查看是哪种类型的latch

SQL>select latch#,name,gets,misses,sleeps from v$latch where sleeps>0 order by sleeps;

利用最主要的latch等待来查看它的子latch

SQL>select addr,latch#,gets,misses,sleeps from v$latch_children where sleeps>0 and latch#=98 order by sleeps desc;

接着查看sleep较多的子latch对应的对象

接下来执行刚开始查询出来的SQL语句

SQL>set autotrace trace explain

此时可以把这条语句在其他的数据库上也执行一下,对比两次不同的结果,找出问题的所在。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库运行在Windows操作系统上,出现CPU过高的情况时,可以通过以下方法来诊断和解决问题: 1. 检查系统负载:使用Windows任务管理器或性能监视器观察系统负载情况,包括CPU利用率、内存使用率和磁盘IO等指标,确定系统是否处于负载状态。 2. 检查Oracle数据库配置:查看Oracle数据库的配置参数,包括SGA和PGA大小、共享池大小以及各种缓冲区和日志文件的大小等,并根据实际情况进行调整。 3. 检查数据库活动:使用Oracle Enterprise Manager或AWR报告等工具,查看数据库活动和性能指标,包括等待事件、耗时操作和并发SQL等,确定是否存在性能瓶颈。 4. 优化SQL查询:通过分析执行计划和索引使用情况,对频繁执行的SQL进行优化,包括添加或修改索引、重写查询语句或重新设计数据库模式等。 5. 检查并发连接数:查看数据库连接数和会话数,确定是否存在过多的连接,可以通过限制最大连接数或优化连接池配置等方式来减少负载。 6. 检查外部资源使用:检查其他应用程序或服务是否与Oracle数据库共享资源,如磁盘空间、网络带宽等,可能的冲突或竞争情况可能导致CPU利用率。 7. 更新系统和数据库软件:确保操作系统和Oracle数据库安装了最新的补丁和更新,以修复已知的问题和优化性能。 8. 考虑升级硬件或增加资源:如果经过以上步骤后仍然无法降低CPU利用率,可能需要考虑升级服务器硬件或增加资源,如添加处理器、增加内存或使用更快的存储设备。 总结起来,要解决Oracle数据库在Windows上CPU过高的问题,需要综合考虑系统负载、数据库配置、数据库活动、SQL优化、连接数等多个因素,根据实际情况进行定位和调整,以优化性能并提系统资源利用率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值