`
- 浏览:
61368 次
- 性别:
- 来自:
广州
-
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语句,如果有可以直接去除提示。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
1. **SQL语句监控**:通过`V$SQL`视图可以获取执行频率高、占用CPU时间长的SQL语句。例如,可以使用以下查询来找到CPU使用率最高的前N个SQL: ```sql SELECT sql_text, cpu_time FROM v$sql ORDER BY cpu_time ...
运行在Windows上的Oracle开发库的oracle进程CPU使用率保持在99%,服务器和数据库均反应缓慢。 二、排查思路 可能造成CPU使用率高的情况有:大量排序、大量SQL解析、全表扫描、Oracle Bug等。因此希望找到...
Oracle数据库系统在运行过程中,如果出现CPU占用率高的情况,可能会对系统的稳定性和性能产生显著影响。本报告主要探讨了如何在CPU资源消耗过大时,有效地进行问题定位和解决。 首先,监控CPU的使用率是发现问题的...
1. **性能指标监控**:插件可以监控Oracle数据库的CPU使用率、内存占用、I/O负载、连接数等核心性能指标,提供详细的性能数据,帮助分析数据库的运行状态。 2. **错误和警告检测**:通过检查Oracle的日志文件,插件...
如果系统内存不足,CPU可能会花费更多时间进行页面交换,导致CPU占用率升高。检查内存使用情况并考虑增加物理内存或优化内存分配。 5. **编程错误**: 对于开发者来说,源码级别的分析至关重要。如果问题出在自编...
### 解读ORACLE_AWR报告 ...通过上述信息,我们可以全面地了解Oracle数据库的运行状态,包括硬件配置、快照信息、内存使用情况、CPU利用率以及系统负载等,这对于确保数据库的高效稳定运行具有重要意义。
- 定义要收集的性能指标,如 CPU 使用率、内存使用、I/O 等。 2.4 TABLESPACE 监控配置: - 配置表空间监控,以跟踪空间使用情况,防止空间耗尽。 - 设置自动报警,当表空间接近满载时通知管理员。 2.5 SQLVIEWER ...
当主机运行时间达198天或248天(24.8天的整数倍),cpu占用率就突然达到100%。此时操作系统命令可以执行,但Oracle的命令象lsnrctl、sqlplus、dbca等都会被hang住,不能执行。 对该bug单独打临时patch 4612267。
### 减少Oracle内存占用 在Windows XP环境下运行Oracle 10g时,可能会遇到数据库占用内存过高的问题。这不仅会影响系统的稳定性,还可能导致其他应用程序因可用内存不足而受到影响。本文将详细介绍如何通过合理设置...
- 优化了性能,减少了内存占用和CPU使用率。 - 解决了已知的稳定性问题,增强了软件的可靠性。 - 更新了文档和示例,帮助开发者更好地理解和使用DOA。 使用DOA时,开发者通常需要具备以下基础知识: - Oracle数据库...
在Oracle数据库中,序列(Sequence)是一种用来生成连续整数的对象,常常用于自增主键。然而,序列在使用过程中可能会遇到性能问题,尤其是在高并发环境下。本文档详细介绍了由于序列cache值设置不当导致CPU利用率过...
- **查询占用`SYSTEM`表空间前10名的对象**:为了更好地了解`SYSTEM`表空间的使用情况,可以查询占用空间最大的前10个对象。 ```sql SELECT * FROM (SELECT SEGMENT_NAME, ROUND(SUM(BYTES)/1024/1024/1024, 2) ...
在11g中,报告会直接显示OS级别的User%、Sys%和Idle%,以及数据库占用OS CPU资源的Busy%。而在10g中,可能需要手动计算这些值。例如,OS级别的CPU利用率可以通过以下公式计算:`%User = USER_TIME/(BUSY_TIME+IDLE_...
2. 性能监控:该工具具备实时性能监控功能,可以监测数据库的CPU使用率、内存占用、I/O活动等关键性能指标,及时发现并定位性能瓶颈。 3. 代码审查:SQL Expert支持源代码级别的审查,检查SQL脚本中的潜在问题,如...
这表示数据库操作占用了总时间的14%,其余时间可能被等待事件占据。 - **DB CPU Time**:1.4分钟。这意味着实际执行SQL语句等数据库操作所花费的时间为1.4分钟。 ##### 2. 缓存大小 - **缓冲区缓存大小**:3,344MB...
- **资源管理**:包括内存管理、I/O管理、CPU管理等。 - **备份恢复**: - RMAN(Recovery Manager)的功能与特点。 - 备份策略的制定。 - 归档模式与非归档模式下的备份差异。 - 站点间数据复制和灾难恢复方案...
队列等待是指在Oracle数据库中由于某些资源被其他进程占用而导致当前进程需要等待的现象。这些资源可能包括但不限于表空间、表、索引、行等。当多个事务同时尝试访问同一资源时,可能会出现队列等待。 ##### 2.1 TX...
- CPU时间:衡量查询在处理器上消耗的时间,高CPU使用率可能表明查询执行效率低下或存在资源争用。 - 延迟时间:从查询开始到结束的总时间,包括等待I/O、网络等的时间。 - 缓冲获取(Buffer Gets):查询期间从...