要找出最耗資源的sql,我們可以首先使用top等工具,找到最好資源的進程(記住進程號),例如,操作系統進程號為1217,然後根據這個進程號(v$process.spid)在v$process中找到進程地址(v$process.addr),然後根據這個地址在v$session中找到相應的sid(v$session.sid),然後根據這個sid找到相應的hash alue(v$session. sql_hash_value),然後根據這個hash alue在v$sqltext,$sql,v$sqlarea等視圖中找到對應的sql語句(sql_text)。
例如:
> whoistopsql.sh 6799
Connected.
SID SERIAL# USERNAME OSUSER MacHINE PROGRAM PROCESS TO_CHAR(LOGON_TIME,
---------- ---------- ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- ------------ -------------------
483 1224 PORTAL www16 bj_wap03 JDBC Thin ClIEnt 2004/09/22 02:21:03
SQL_TEXT
----------------------------------------------------------------
SELECT * FROM SPINFO where spID = :1
>