如何查看unix下某個oracle OS的進程在做什么操作
發表于:2007-07-13來源:作者:點擊數:
標簽:
今天一個網管問我,為什么 unix 下一個oracle OS的進程消耗了那么多的CPU? 登錄上 服務器 ,果然發現了那個進程,是一個用戶連接oracle的進程. 根據OS進程號(我這里用的直連方式),應該可以查到它正在執行什么 SQL 語句. -- 查到oracle OS進程的sid編號: select
今天一個網管問我,為什么
unix下一個oracle OS的進程消耗了那么多的CPU?
登錄上
服務器,果然發現了那個進程,是一個用戶連接oracle的進程.
根據OS進程號(我這里用的直連方式),應該可以查到它正在執行什么
SQL語句.
-- 查到oracle OS進程的sid編號:
select ses.sid from v$session ses,v$process pro where pro.spid=&spid and ses.paddr=pro.addr;
-- 查到此sid連接用戶正在執行的SQL語句:
select
sql_text from v$sqltext_with_newlines where (hash_value,address)
in (select sql_hash_value,sql_address from v$session where sid=&sid) order by address,piece;
原來是一個條件復雜的分組統計的SQL
原文轉自:http://www.kjueaiud.com