用Quick Slice獲取Oracle進(jìn)程的線程狀態(tài)
◆1.首先,你需要找出運(yùn)行Oracle所對(duì)應(yīng)的所有線程的id號(hào)。
SQL> select p.spid 'Thread ID', b.name 'Background Process', s.username
'User Name',
s.osuser 'OS User', s.status 'STATUS', s.sid 'Session ID',
s.serial# 'Serial No.',
s.program 'OS Program'
from v$process p, v$bgprocess b, v$session s
where s.paddr = p.addr and b.paddr(+) = p.addr;
下面是輸出結(jié)果:
Thread ID Backg User Name OS User STATUS Session ID Serial No.
OS Program
------------ ----- ---------- ---------- -------- ---------- ----------
20229 PMON Oracle ACTIVE 1 1
oracle@db02.s0.gc.media.com (PMON)
20231 DBW0 Oracle ACTIVE 2 1
oracle@db02.s0.gc.media.com (DBW0)
20233 LGWR Oracle ACTIVE 3 1
oracle@db02.s0.gc.media.com (LGWR)
20235 CKPT Oracle ACTIVE 4 1
oracle@db02.s0.gc.media.com (CKPT)
20237 SMON Oracle ACTIVE 5 1
oracle@db02.s0.gc.media.com (SMON)
20239 RECO Oracle ACTIVE 6 1
oracle@db02.s0.gc.media.com (RECO)
20241 ARC0 Oracle ACTIVE 7 1
oracle@db02.s0.gc.media.com (ARC0)
20243 ARC1 Oracle ACTIVE 8 1
oracle@db02.s0.gc.media.com (ARC1)
20245 DMON Oracle ACTIVE 9 1
oracle@db02.s0.gc.media.com (DMON)
18460 SYS Oracle ACTIVE 17 22737
sqlplus@db02.s0.gc.media.com (TNS V1-V3)
15700 Oracle ACTIVE 12 7
oracle@db02.s0.gc.sj.ipixmedia.com (LNS0)
在本例中,線程號(hào)為20229的線程是PMON,線程號(hào)為20231的線程是DBW0,等等。
◆2.接下來,在'c:Program FilesResource Kit.'目錄中雙擊文件qslice.exe
◆3.為了顯示進(jìn)程的每個(gè)線程,找到進(jìn)程-oracle.exe并雙擊之。
另外一個(gè)圖形窗口將彈出并顯示所有的線程及其CPU使用情況。
◆4.為了識(shí)別這些線程,請(qǐng)將線程號(hào)(TID)列和前面的SQL語句的線程號(hào)列想比較。為了匹配線程號(hào)(TID)和Oracle進(jìn)程ID,你需要使用科學(xué)計(jì)算器將線程號(hào)(TID)由十六進(jìn)制轉(zhuǎn)化為十進(jìn)制。
紅色條代表該線程占用的內(nèi)核時(shí)間;藍(lán)色條代表該線程占用的用戶時(shí)間。
