查找Oracle数据库中占用最多CPU的SQL
来源:互联网 发布:淘宝手机图片尺寸 编辑:程序博客网 时间:2024/05/16 06:41
问题:
最近在对数据库切换时发现应用切换到新布署的服务器上cpu占用百分百,使用以下方法找到问题原因。
操作:
1,使用Linux系统top命令查出占用cpu最高的进程
2,在sqlplus中执行如下sql:
SELECT
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN
(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid = '&pid'))
ORDER BY piece ASC
其中&pid 是使用top 查看系统中进程占用CPU极高的PID
找到SQL语句进行相应的调整优化
3,分析找到的sql语句,如查看sql执行计划。
总结:
这里的问题是查询的where 条件字段没有在索引里面,导致查询慢。经过重建并增加相关字段到索引解决,但有点疑惑的是原来库上查询语句里where条件字段也没有在索引里面(新库是使用expdp导出再导入到新库的),查询还正常,CPU也不高,oracle数据库真是博大精深,好多问题还有待研究。
附:一般cpu占用效高都是排序、sql解析和全表扫描。
======================================================================================
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任! 谢谢合作!
QQ: 164798858@qq.com
Sina: weibo.com/kaijunfeng
Yahoo: fffygapl@yahoo.com.cn
- 查找Oracle数据库中占用最多CPU的SQL
- 定位 占用CPU最多 SQL
- 如何定位占用oracle数据库cpu过高的sql
- 如何定位占用oracle数据库cpu过高的sql
- oracle数据库cpu占用居高不下的解决办法
- oracle 中查询占用session最多的进程
- SQL Server中查询CPU占用高的SQL语句
- SQL Server中查询CPU占用高的SQL语句
- SQL Server中查询CPU占用高的SQL语句
- SQL Server中查询CPU占用高的SQL语句
- Oracle数据库服务器CPU占用率很高,通过PID 查找正在执行的sql
- 查看linux占用内存/CPU最多的进程
- 找出cpu资源占用最多的那个线程
- linux查看占用内存/CPU最多的进程
- 查看linux占用内存/CPU最多的进程
- 列出十分钟内占用cpu最多的几个进程
- 占用CPU资源最多的50条语句
- 查询耗费CPU最多的SQL语句
- 如何从零开始学好 Ruby?
- REST WebService与SOAP WebService的比较
- 让程序随机不定时间生成随机种类的图形并生成多个
- Sticky session
- 计算大数阶乘--Dos批处理版
- 查找Oracle数据库中占用最多CPU的SQL
- 南工acm11、12两年获奖
- 雷锋网专访8684 CEO夏天天:用户是最好的数据采集团队
- malloc,calloc,realloc等内存分配函数区别
- rpm包搜索网站
- 对Memcached的使用的总结
- ArcGIS API for Silverlight 鼠标移入移出地图要素弹出窗口(优化处理)
- 求最大公约数
- Linux下gcov和lcov代码覆盖率分析(C/C++覆盖率在NGINX测试中的应用)