首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>数据库>ORACLE>Oracle导致CPU进程100%原因及其对应解决方案
Oracle导致CPU进程100%原因及其对应解决方案
来源: 发布时间:2008-05-26 发布人: 浏览: 人次   字体: [ ]  
      Oracle导致CPU进程100%原因及其对应解决方案
 1:检查系统

  sar -u 5 5
  2: 看谁在用CPU
  topas
  ps -ef |grep ora #检查第四列,C的大小(unit,100 per cpu)

  3:检查CPU数量
  /usr/sbin/bindprocessor -q
  lsattr El proc0

  4:两种可能:
  1: A Background (instance) process
  2: An oracle (user) process #此种可能最大。

  5: 如果是用户进程:那么高CPU的主要原因有:
  Large Queries, Procedure compilation or execution,
  Space management and Sorting

  5.1 查看每个Session的CPU利用情况:
  select ss.sid,se.command,ss.value CPU ,se.username,se.program
  from v$sesstat ss, v$session se
  where ss.statistic# in
  (select statistic#
  from v$statname
  where name = 'CPU used by this session')
  and se.sid=ss.sid
  and ss.sid>6
  order by ss.sid

  5.2: 比较上述Session

  比较一下哪个session的CPU使用时间最多,然后查看该Session的具体情况:
  select s.sid, event, wait_time, w.seq#, q.sql_text
  from v$session_wait w, v$session s, v$process p, v$sqlarea q
  where s.paddr=p.addr and
  s.sid=&p and
  s.sql_address=q.address;

  5.3:查看

  得到上述信息后,查看相应操作是否有hash joins 和 full table scans。如果有hash joins 和 full table scans那么必须创建相应的Index或者检查Index是否有效。

  另外必须检查是否有并行的查询存在和同一时刻有多个用户在执行相同的SQL语句,如果有必须关闭并行的查询和任何类型的并行提示(hints);如果查询使用intermedia数据,那么为了减少总的Index大小,必须限制使用Intermedia的Worldlist。(try restricting the wordlist that intermedia uses to help reduce the total indexsize)。

  6:注意事项

  上述方案只能根据已经运行完成的操作,对于正在执行的长时间操作只能等操作完成后才能检测得到。因此我们可以通过另外一个很好的工具来检测正在运行的长时间操作语句。v$session_longops,这个视图显示那些操作正在被运行,或者已经完成。每个process完成后会刷新本视图的信息。

  7:怎样寻找集中使用CPU的Process

  很多时候会发现有N个Process在平均分享着CPU的利用率,这种情况唯一的可能性就是这些Process在执行着相同的Package或者Query.

  这种情况:建议通过statspack,在CPU高利用率额时候运行几个快照,然后根据这些快照检查Statspack报告,检查报告中最TOP的Query。然后使用 sql_trace and tkprof 工具去跟踪一下。

  同时检查buffer cache 的命中率是否大雨95%。

  同时在报告中还需要检查一下table scans (long tables),看是否在报告生成期间有存在全表扫描。

  8:参数

  另外还有一些不是特别重要的,但是也必须关心检查的参数可能消耗CPU。

  parallel query 并行查询:

  并行查询最好用于数据仓库的环境下,那种情况任何时候只有几个用户在同时使用。在一个联机事务处理环境中,当同时许多用户去并行查询一个数据库的巨大表时候,会导致CPU的爆满。所以最好在数据库的级别关闭并行查询:设置参数如下:

  parallel_min_server = 0  parallel_max_server = 0
  parallel_automatic_tuning = false;

  在配置上述参数后,如果SQL语句中使用的并行的提示,那么还是有可能会出现并行查询的情况,所以还需要继续监视相关的SQL语句,如果有可以直接去除提示。


↓下一篇:没有了
相 关 文 章   发布商链接
·解析Oracle中限制返回结果集的大小
·用Oracle 10g列值掩码技术隐藏敏感数...
·Oracle巧取指定记录以及巧用外关联...
·ORACLE使用中的常见、实用的问题技巧
·oracle数据库导入Excel数据方法
·导入、导出oracle数据库与复制表、清...
·Oracle内连接、外连接、右外连接、全...
·几个方面入手oracle性能优化方案
·Oracle sql性能优化调整规则汇总
·如何彻底删除安装Oracle留下的东西
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解对oracle进行简单树...
·Oracle服务费是如何计算的,以...
·如何完全清除Oracle
·ORACLE 10G分区表维护:全局...
·怎样有效提高Oracle 10G增量...
·Oracle数据库的四种启动方式...
·利用函数实现oracle行列转换
·使用type类型和存储过程来完...
·oracle9i客户端如何连接oracl...
·解决ORACLE被锁定的资源两法
·oracle中分割字符串,并求最...
·详细讲解Oracle数据库灾难防...
·oracle分析函数row_number的...
·如何彻底删除安装Oracle留下...
·Oracle sql性能优化调整规则...
热 门 文 章
·Oracle内连接、外连接、右外...
·ORACLE使用中的常见、实用的...
·导入、导出oracle数据库与复...
·oracle9i客户端如何连接oracl...
·oracle分析函数row_number的...
·几个方面入手oracle性能优化...
·oracle中分割字符串,并求最...
·利用函数实现oracle行列转换
·Oracle sql性能优化调整规则...
·Oracle巧取指定记录以及巧用...
·使用type类型和存储过程来完...
·oracle数据库导入Excel数据方...
·如何彻底删除安装Oracle留下...
·ORACLE 10G分区表维护:全局...
·解决ORACLE被锁定的资源两法
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .