Oracle 11g数据库缓慢诊断案例
运维同事反应数据库运行缓慢登录数据库的操作系统,通过 top 命令查看系统负载,发现有两个进程使用的 CPU 均很高,且这两个进程都是 oracle 的登录数据库,查看这两个进程对应的会话信息,发现其中一...
·
运维同事反应数据库运行缓慢
登录数据库的操作系统,通过 top 命令查看系统负载,发现有两个进程使用的 CPU 均很高,且这两个进程都是 oracle 的
登录数据库,查看这两个进程对应的会话信息,发现其中一个会话为 SQL 查询,已经运行了40多分钟,找到其中的 SQL_ID
select s.SID,s.SERIAL#,MACHINE,TERMINAL, OSUSER, SCHEMANAME, PROGRAM,MODULE,ACTION,CLIENT_INFO,
decode(s.COMMAND,3,'SELECT',s.COMMAND) COMMAND,STATUS,SQL_ID,SQL_ADDRESS,SQL_EXEC_START,
DECODE(STATUS,'ACTIVE',LAST_CALL_ET,NULL) "SQL执行时间",EVENT,STATE,SECONDS_IN_WAIT,SERVICE_NAME
from V$SESSION s where s.USERNAME is not null AND WAIT_CLASS <> 'Idle' and spid = &1;
SQL_ID
cf5qahutb4wqb
查看 SQL 的内容
SELECT SQL_ID,SQL_TEXT FROM V$SQLAREA WHERE SQL_ID = 'cf5qahutb4wqb';
BEGIN P_GOLD_DATEUSER(:1 , :2 , :3 , :4 , :5 , :6 , :7 ); END;
分析找到的 PL SQL 代码,找到里面的一条 BAD SQL
登录数据库的操作系统,通过 top 命令查看系统负载,发现有两个进程使用的 CPU 均很高,且这两个进程都是 oracle 的

登录数据库,查看这两个进程对应的会话信息,发现其中一个会话为 SQL 查询,已经运行了40多分钟,找到其中的 SQL_ID
select s.SID,s.SERIAL#,MACHINE,TERMINAL, OSUSER, SCHEMANAME, PROGRAM,MODULE,ACTION,CLIENT_INFO,
decode(s.COMMAND,3,'SELECT',s.COMMAND) COMMAND,STATUS,SQL_ID,SQL_ADDRESS,SQL_EXEC_START,
DECODE(STATUS,'ACTIVE',LAST_CALL_ET,NULL) "SQL执行时间",EVENT,STATE,SECONDS_IN_WAIT,SERVICE_NAME
from V$SESSION s where s.USERNAME is not null AND WAIT_CLASS <> 'Idle' and spid = &1;
SQL_ID
cf5qahutb4wqb
查看 SQL 的内容
SELECT SQL_ID,SQL_TEXT FROM V$SQLAREA WHERE SQL_ID = 'cf5qahutb4wqb';
BEGIN P_GOLD_DATEUSER(:1 , :2 , :3 , :4 , :5 , :6 , :7 ); END;
分析找到的 PL SQL 代码,找到里面的一条 BAD SQL
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26506993/viewspace-1874135/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26506993/viewspace-1874135/

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)