获取线程id:用Quick Slice获取Oracle进程的线程状态来源: 发布时间:星期二, 2008年7月8日 浏览:217次 评论:0
与Windows NT系统相比,在Unix环境下对每个Oracle进程监视其CPU使用率是很容易的。在NT系统中,只有一个Oracle进程(即,oracle.exe)。在Windows环境下,为了得到Oracle进程的每个线程的状态,可以使用Quick Slice,一个基于“图形用户界面”的独立程序。它可以从Microsoft网站上免费下载。该软件适用于所有Windows环境下的Oracle 8i和9i。下面是使用它的方法:
◆1.首先,你需要找出运行Oracle所对应的所有线程的id号。
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;
下面是输出结果:
Thread ID Backg User Name OS User STATUS Session ID Serial No. OS Program ------------ ----- ---------- ---------- -------- ---------- ----------
20229 PMON Oracle ACTIVE 1 1 [email protected] (PMON) 20231 DBW0 Oracle ACTIVE 2 1 [email protected] (DBW0) 20233 LGWR Oracle ACTIVE 3 1 [email protected] (LGWR) 20235 CKPT Oracle ACTIVE 4 1 [email protected] (CKPT) 20237 SMON Oracle ACTIVE 5 1 [email protected] (SMON) 20239 RECO Oracle ACTIVE 6 1 [email protected] (RECO) 20241 ARC0 Oracle ACTIVE 7 1 [email protected] (ARC0) 20243 ARC1 Oracle ACTIVE 8 1 [email protected] (ARC1) 20245 DMON Oracle ACTIVE 9 1 [email protected] (DMON) 18460 SYS Oracle ACTIVE 17 22737 [email protected] (TNS V1-V3) 15700 Oracle ACTIVE 12 7 [email protected] (LNS0)
在本例中,线程号为20229的线程是PMON,线程号为20231的线程是DBW0,等等。
◆2.接下来,在"c:Program FilesResource Kit."目录中双击文件qslice.exe
◆3.为了显示进程的每个线程,找到进程-oracle.exe并双击之。
另外一个图形窗口将弹出并显示所有的线程及其CPU使用情况。
◆4.为了识别这些线程,请将线程号(TID)列和前面的SQL语句的线程号列想比较。为了匹配线程号(TID)和Oracle进程ID,你需要使用科学计算器将线程号(TID)由十六进制转化为十进制。
红色条代表该线程占用的内核时间;蓝色条代表该线程占用的用户时间。 0
相关文章读者评论发表评论 |