A. 如何查看导致CPU100%的sql语句
进入 SQL活动监视器,多刷新几次,查看哪个进程的CPU数值增长最快的连接,双击连接,就可以看到对应的查询语句了
B. AWR中发现这个SQL被频繁执行,频率特高,什么原因
用户连接错误导致的
是不是用户登录特别频繁?看看awr中的Logons值
有用户进行频繁的连接
递归 SQL ,执行次数多
C. 请问大家如果解决SQL导致的CPU占用率过高
解决方案
将mysqld的内存库函数替换成tcmalloc,相比ptmalloc,tcmalloc可以更好的支持高并发调用。
修改my.cnf,添加如下参数并重启
[mysqld_safe]malloc-lib=tcmalloc
上周五早上7点执行的操作,到现在超过72小时,期间该实例没有再出现cpu长期飙高的情形。
以下是修改前后cpu使用率对比
D. oracle awr报告cpu高怎么看
cpu较高,一般是SQL执行频率太快导致,看看“SQL ordered by CPU Time”中有没有异常的SQL
E. oracle占用cpu过高 怎么处理
这个没办法处理优化,只能是提高电脑配置,或者是换其他版本的oracle,建议使用10g。
解释:oracle运行程序本身就比较占内存,并且要启动三个实例才可以运行,所以建议可以更换个大的内存条(最少4G),安装64位系统。
备注:建议不用oracle的情况下可以把oracle的进程都停掉,减少内存占用。