查询当前排名的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占用过的记录