关于查询ORACLE后台SQL执行缓慢和CPU占用过的记录

查询当前排名的SQL执行语句

select sa.SQL_TEXT,

sa.SQL_FULLTEXT,

sa.EXECUTIONS 执行bai次du数,

round(sa.ELAPSED_TIME/1000000,2) 总执zhi行时间,

round(sa.ELAPSED_TIME/1000000/sa.EXECUTIONS,2) 平均执dao行时间,

sa.COMMAND_TYPE,

sa.PARSING_USER_ID 用户zhuanID,

u.username 用户名,

sa.HASH_VALUE

from v$sqlarea sa

left join all_users u

on sa.PARSING_USER_ID = u.user_id

where sa.EXECUTIONS > 0

order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc

查看 Windows 下引起 Oracle CPU 占用率高的神器 – qslice

前言:

qslice 是一个 win2000 的工具包,能分析进程的 cpu 占用率,我们用于分析 oracle 的性能

这是绿色的软件无需安装。

我们经常会碰到 oracle 的 CPU 占用居高不下,无法快速定位到问题 SQL,就需要这个神器:qslice。

分析过程:

1、进入 qslice,打开 oracle 进程,双击进入

 2、最大化弹出的窗口,发现连接 Oracle 的子线程在跳动。

 3、观察几分钟,揪出频繁出现的 TID:1640

4、此时就可以按 1640 查询到问题 SQL 了

SELECT

sql_text

FROM v$sqltext a

WHERE (a.hash_value, a.address) IN (

SELECT DECODE (sql_hash_value,

0, prev_hash_value,

sql_hash_value

),

DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)

FROM v$session b

WHERE b.paddr = (SELECT addr

FROM v$process c

WHERE c.spid = TO_NUMBER (‘1640’, ‘xxxx’)))

ORDER BY piece ASC

5、qslice 已经无法从微软官网下载了,附上 qslice 的下载链接

http://files.cnblogs.com/files/pcsky/qslice.rar

未经允许不得转载:苹果的日记本 » 关于查询ORACLE后台SQL执行缓慢和CPU占用过的记录

赞 (18) 打赏

相关推荐

    暂无内容!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏