oracle数据库,如何找到正在被执行中的最耗时的sql语句。

1、oracle数据库,如何找到正在被执行中的最耗时的sql语句?2、在oracle中,是怎么优化sql语句的,也就是说,假如我找到了一个最耗时的sql语句,然后我想优化它,应该是一个什么样的流程,先干什么,再干什么,能不能说一下...显示全部
1、oracle数据库,如何找到正在被执行中的最耗时的sql语句?
2、在oracle中,是怎么优化sql语句的,也就是说,假如我找到了一个最耗时的sql语句,然后我想优化它,应该是一个什么样的流程,先干什么,再干什么,能不能说一下收起
参与7

查看其它 1 个回答静以致远的回答

静以致远静以致远数据库运维工程师汇通天下
SELECT s.Schemaname Schema_Name,Decode(Sign(48 - Command),
1, To_Char(Command), 'Action Code #' || To_Char(Command)) Action,Status Session_Status, s.Osuser Os_User_Name, s.Sid, p.Spid,s.Serial# Serial_Num, Nvl(s.Username, '[Oracle process]') User_Name,
s.Terminal Terminal, s.Program Program, St.VALUE Criteria_Value
FROM V$sesstat St, V$session s, V$process p
WHERE St.Sid = s.Sid
AND St.Statistic# = To_Number('38')
AND ('ALL' = 'ALL' OR s.Status = 'ALL')
AND p.Addr = s.Paddr
ORDER BY St.VALUE DESC, p.Spid ASC, s.Username ASC, s.Osuser ASC
这个SQL是查看消耗资源的情况


SELECT Ws.CLASS, Ws.COUNT COUNT, SUM(Ss.VALUE) Sum_Value
FROM V$waitstat Ws, V$sysstat Ss
WHERE Ss.NAME IN ('db block gets', 'consistent gets')
GROUP BY Ws.CLASS, Ws.COUNT;

这个是查看锁等待信息

优化的方法不是简单的能说的清楚的,给你一个id,个人总结,仅供参考
http://blog.itpub.net/29320885/viewspace-1217814/
互联网服务 · 2015-07-08
浏览926

回答者

静以致远
数据库运维工程师汇通天下
擅长领域: 数据库备份关系型数据库

静以致远 最近回答过的问题

回答状态

  • 发布时间:2015-07-08
  • 关注会员:1 人
  • 回答浏览:926
  • X社区推广