如何查詢占CPU高的oracle進程
更新時間:2012年11月23日 09:53:44 作者:
oracle占用cpu過高怎么處理,本文將介紹有關oracle進程CPU占用率過高的問題,需要了解跟多的朋友可以參考下
oracle占用cpu過高怎么處理,本文將介紹有關oracle進程CPU占用率過高的問題,需要了解跟多的朋友可以參考下
1:首先使用TOP命令傳到占用CPU高的SPID號
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle
3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle
2:使用DBA賬戶登錄數(shù)據(jù)庫,使用以下SQL語句查詢:
SELECT * FROM V$PROCESS WHERE spid=3575;查詢到SQL相關信息
3:根據(jù)以上查詢到的信息使用以下SQL查詢:
SELECT sid, program FROM V$SESSION S WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=3575 AND ADDR = S.PADDR);
可以查詢到具體那個客戶端查詢一直在不斷占用ORACLE資源!
最后對這個查詢進行處理!
4.根據(jù)SID查得SQLITPUB
select sql_textITPUB
from v$sqltext
where a.hashvalue=(select sql_hash_value
from v$session b
where b.SID='&sid')
0order by piece ASC;
根據(jù)lockwait字段可以查詢當前正在等待的鎖的相關信息:
select * from v$lock where kaddr in (select lockwait from v$session where sid= $sid);
(sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根據(jù)這兩組字段, 可以查詢到當前session正在執(zhí)行的或最近一次執(zhí)行的sql語句的詳細信息:
select * from v$sqltext where address = &sql_address and hash_value = &sql_hash_value;
根據(jù)PID查SQL相關信息:
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));
根據(jù)PID查SQL語句
SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid='&spid' AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece;
得到進程的sid號:
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));
得到session的sqltext語句:
select sql_text from v$sqltext_with_newlines where hash_value in (select SQL_HASH_VALUE from v$session where paddr in (select addr from v$process where spid= '&pid')) order by piece;
1:首先使用TOP命令傳到占用CPU高的SPID號
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle
3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle
2:使用DBA賬戶登錄數(shù)據(jù)庫,使用以下SQL語句查詢:
SELECT * FROM V$PROCESS WHERE spid=3575;查詢到SQL相關信息
3:根據(jù)以上查詢到的信息使用以下SQL查詢:
SELECT sid, program FROM V$SESSION S WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=3575 AND ADDR = S.PADDR);
可以查詢到具體那個客戶端查詢一直在不斷占用ORACLE資源!
最后對這個查詢進行處理!
4.根據(jù)SID查得SQLITPUB
復制代碼 代碼如下:
select sql_textITPUB
from v$sqltext
where a.hashvalue=(select sql_hash_value
from v$session b
where b.SID='&sid')
0order by piece ASC;
根據(jù)lockwait字段可以查詢當前正在等待的鎖的相關信息:
復制代碼 代碼如下:
select * from v$lock where kaddr in (select lockwait from v$session where sid= $sid);
(sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根據(jù)這兩組字段, 可以查詢到當前session正在執(zhí)行的或最近一次執(zhí)行的sql語句的詳細信息:
select * from v$sqltext where address = &sql_address and hash_value = &sql_hash_value;
根據(jù)PID查SQL相關信息:
復制代碼 代碼如下:
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));
根據(jù)PID查SQL語句
復制代碼 代碼如下:
SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid='&spid' AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece;
得到進程的sid號:
復制代碼 代碼如下:
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));
得到session的sqltext語句:
復制代碼 代碼如下:
select sql_text from v$sqltext_with_newlines where hash_value in (select SQL_HASH_VALUE from v$session where paddr in (select addr from v$process where spid= '&pid')) order by piece;
相關文章
Oralce中VARCHAR2()與NVARCHAR2()的區(qū)別介紹
這篇文章主要給大家詳細介紹了關于Oralce中VARCHAR2()與NVARCHAR2()的區(qū)別,文中先通過翻譯官方的介紹進行區(qū)別總結(jié),然后由一個實戰(zhàn)示例代碼進行演示,相信對大家的理解會很有幫助,有需要的朋友們下面來跟著小編一起看看吧。2016-12-12
oracle 9i使用閃回查詢恢復數(shù)據(jù)庫誤刪問題
本篇文章給大家介紹在oracle 9i中使用閃回查詢恢復數(shù)據(jù)庫誤刪問題,涉及到數(shù)據(jù)庫增刪改查的基本操作,對oracle數(shù)據(jù)庫閃回查詢感興趣的朋友可以一起學習下本篇文章2015-10-10
MSSQL與Oracle數(shù)據(jù)庫事務隔離級別與鎖機制對比
事務隔離級別是并發(fā)控制的整體解決方案,其實際上是綜合利用各種類型的鎖和行版本控制,來解決并發(fā)問題。鎖是數(shù)據(jù)庫并發(fā)控制的內(nèi)部機制,是基礎。對用戶來說,只有當事務隔離級別無法解決一些并發(fā)問題和需求時,才有必要在語句中手動設置鎖。2014-08-08
Oracle數(shù)據(jù)庫常見字段類型大全以及超詳細解析
在Oracle數(shù)據(jù)庫中查詢特定表的字段個數(shù)通常需要使用SQL語句來完成,這篇文章主要介紹了Oracle數(shù)據(jù)庫常見字段類型大全以及超詳細解析,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-04-04
Oracle創(chuàng)建帶有參數(shù)的視圖代碼介紹
這篇文章主要介紹了Oracle創(chuàng)建帶有參數(shù)的視圖代碼介紹,簡介地介紹了創(chuàng)建方法,具有一定參考價值,需要的朋友可以了解下。2017-09-09

