oracle 数据库服务器CPU资源占用超高(75%)

环境:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

CentOS release 6.5 X64

现象:系统CPU使用率达到75%,查看系统进程资源状态。

数据库中查看

select t.sql_text,s.sid, s.serial#,s.program,s.process,s.USERNAME,p.spid from  v$sqlarea t ,v$session s ,v$process p  where t.address=s.sql_address and t.hash_value=s.sql_hash_value  and s.paddr=p.addr  and p.spid in (PID);

pid 为操作系统中PID。

查看结果sql语句和program 程序,

查看执行计划:

PLAN_TABLE_OUTPUT

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Plan hash value: 3345675291

------------------------------------------------------------------------------------------------

| Id  | Operation             | Name                   | Rows  | Bytes | Cost (%CPU)| Time     |

------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT      |                        |     1 |    66 | 48343   (1)| 00:09:41 |

|   1 |  SORT AGGREGATE       |                        |     1 |    66 |            |          |

|   2 |   VIEW                | VM_NWVW_1              |     1 |    66 | 48343   (1)| 00:09:41 |

|   3 |    HASH GROUP BY      |                        |     1 |    67 | 48343   (1)| 00:09:41 |

|*  4 |     HASH JOIN ANTI NA |                        |   426 | 28542 | 48342   (1)| 00:09:41 |

|*  5 |      TABLE ACCESS FULL| T_PPS | 42578 |   997K| 37806   (1)| 00:07:34 |

PLAN_TABLE_OUTPUT

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|*  6 |      TABLE ACCESS FULL|  PUSH_USENT   |  2883K|   118M| 10521   (1)| 00:02:07 |

------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

4 - access("QN"."CIMEI0"="CIMEI")

5 - filter("QN"."CDATE">=TO_DATE(‘ 2015-06-07 00:00:00‘, ‘syyyy-mm-dd hh24:mi:ss‘)

AND (LENGTH("QN"."CIMEI0")=14 OR LENGTH("QN"."CIMEI0")=15) AND "QN"."CDATE"<=TO_DATE(‘

2015-06-28 00:00:00‘, ‘syyyy-mm-dd hh24:mi:ss‘))

6 - filter("CLASTIME">TO_DATE(‘ 2015-07-01 00:00:00‘, ‘syyyy-mm-dd hh24:mi:ss‘))

PLAN_TABLE_OUTPUT

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

做的是全表扫描,已经有几百条这样的sql都同时在执行,导致CPU资源暴涨。

解决:

1、结束程序进程释放资源:
alter system kill session ‘sid,serial#‘;

2、如果太多PID占用进程,可以考虑重启库释放资源。

3、sql语句的优化及索引优化。

时间: 2024-12-28 14:29:49

oracle 数据库服务器CPU资源占用超高(75%)的相关文章

查看oracle数据库服务器的名字

原文:查看oracle数据库服务器的名字 windows 中 1. select name from v$database ; 直接运行就可以查看了, 2.查看tnsnames.ora 的连接,有个SID,SID就是服务名了 1.查看oracle的安装目录,方法是查看注册表:如:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOME REG_SZ E:\ORACLE\ORA92 得到了oracle的安装目录一般来讲,如果服务器在安装时采用的是默认值那么这个值

Oracle 数据库服务器使用aix小机,并且该小机作为nfs client使用的一级挂载点问题

大家要务必掌握一个知识点: 在aix操作系统中(仅仅aix有该问题,其他os没有该问题),若是本aix 小机 作为nfs client 使用,并且本小机也是oracle的数据库服务器,并且在本小机上df -g看到的 挂载点(比如说是/rman)是一级的目录,若是nfs 出现问题(包括nfs server宕机,nfs client 与nfs server之间 断网等等),会导致 nfs client (此处就是作为oracle 数据库服务器的小机) 上的oracle 数据库出现异常:实例冻结,新的

一台Oracle数据库服务器上两个监听同时使用

记得之前Oracle原厂的工程师在例行检查时发现一台Oracle数据库服务器的上启动了两个监听,分别监听的是1521和1581端口,而且两个端口都在用,当时当作一个比较奇怪的现象,没有能理解原因是什么.最近几天在看Oracle网络配置的文档,无意间在虚拟机上启动了两个监听,就又想起了之前的问题.到底是因为什么原因呢? 下面先来还原一下整个过程. 当时是在做配置静态监听的练习,在listener.ora中配置了一个静态监听: ORCL =   (DESCRIPTION=     (ADDRESS_

Oracle 数据库服务器修改操作系统时间的注意事项

Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha 1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的. 基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 对rac 1.对数据库本身而言,有影响,因为CRS需要节点的os时间保持同步,否则可能会引起节点驱逐. 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影

【原创】面向对象版本地CPU资源占用监控脚本

前期准备: 1.python2.7环境 2.相关第三方库下载安装 脚本工作过程: 1.根据输入的进程名判断进程是否存在,如果不存在则进行等待,直到检测到进程PID,中途进程退出抛出异常,键入enter后等待进程重启 实际作用: 1.可以重复监控某一进程CPU资源占用情况,结果同步到本地D盘文本保存 #coding=utf-8 import psutil import sys import time import win32com.client class Cpu(): def __init__(

详解Oracle数据库服务器修改操作系统时间的注意事项

Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的.   基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 推荐:安装oracle10g时候注意事项&修改oracle数据库字符集编码 [安装oracle10g时候注意事项:1. 关闭网络连接2.……修改oracle数据库字符集编码:先用syst

数据库服务器CPU 突然持续100%后自动下降原因诊断

1.CPU接近100% nmon数据 8月5日在9:20-9:40之间,出现CPU接近100%的情况,特点表现为9:20左右CPU急剧攀升,在9:45左右又快速下降 2.原因分析结果总述 2.1 持续时间与恢复方式 此次CPU攀高时间持续约20分钟,在无人工干预的情况下自动恢复 2.2 原因分析总述: 经过分析,原因为:4条SQL语句ORACLE优化器对LB_T_XXXVIDER视图.LB_T_XXXJECT_PROVIDER表.LA_XXCKAGE表的基数数据评估发生了巨大的差错,导致选择了错

Oracle数据库服务器的两种连接方式

oracle提供了两种数据库连接方式,一种是专有连接方式,另一种是共享连接方式.区别在于专有连接方式是一个用户对应一个数据库服务器进程,而共享服务器连接方式是多个用户可以不定向轮流使用一个服务器进程.oracle推荐专有连接,一个session对应一个服务器进程,会减少竞争,对于较长事务很有用,但是会耗费PGA资源;共享连接方式对于事务执行时间短且服务器资源受限的系统是有利的.对于该使用哪种连接方式,自己权衡. 我们可以通过dbca设置数据库的连接方式: 当然我们也可以通过修改参数shared_

关于ORACLE数据库服务器SWAP该设置成多大的建议值

1.swap的作用 系统管理和DBA都知道,在Linux和UNIX系统上都有一个SWAP分区,该分区,例似于于Windows系统上的虚拟内存. 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,临时转移到SWAP上,供当前运行的程序提供物理内存空间,当程序需要再访问被转移到了SWAP空间上的数据时,再从SWAP中恢复到物理内存中.从此工作原理不难看出来,SWAP要有,但是尽量不要使用,使用了就会发生内存交换,必然影响系统性能. 2.swap设置问题 有经验的系统管理员和DBA