关闭

捕获问题SQL解决过度CPU消耗问题

443人阅读 评论(0) 收藏 举报
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='&PID')
)
ORDER BY PIECE ASC

这里涉及到了3个视图。首先输入一个pid,这个pid即process_id,也就是top或ps(都是linux下的命令)中看到的pid,通过pid和V$process.spid相关联,可以获得Process的相关信息,进而通过V$process.addr和V$session.paddr相关联,就可获得和session相关的信息。
(摘抄于<深入解析Oracle>中的P213)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:124677次
    • 积分:2271
    • 等级:
    • 排名:第17144名
    • 原创:103篇
    • 转载:58篇
    • 译文:0篇
    • 评论:2条
    文章分类