Cpu 100% caused by oracle process on windows
oracle 六月 4th, 2008由于windows上ORACLE操作都集中在ORACLE.EXE一个进程上,想具体查看是那个线程占用cpu偏高,需要使用一些windows下观察线程的工具:
process explorer使用图形界面,功能很丰富,可以看作是一个高级任务管理器,打开后,双击oracle.exe进程;选择threads标签页,就可以查看线程信息了
pslist工具使用:
pslist -e oracle -x -s -r 10 \\10.8.2.22 -u user -p pwd
注:
-e oracle 指定进程的名字
-r 10 是10秒刷新一次
\\10.8.2.22 是远端的ip
-u user 指定用户名
-p pwd 指定密码。
在了解了线程的ID号以后,就可以去数据库中查询该线程在做什么,为什么占用cpu很高?
下载: getsql.sql
- SELECT /*+ ORDERED */ SQL_TEXT
- FROM V$SQLTEXT A
- WHERE (A.HASH_VALUE, A.ADDRESS) IN
- (SELECT DECODE(SQL_HASH_VALUE, 0, PREV_HASH_VALUE, SQL_HASH_VALUE),
- DECODE(SQL_HASH_VALUE, 0, PREV_SQL_ADDR, SQL_ADDRESS)
- FROM V$SESSION B
- WHERE B.PADDR =
- (SELECT ADDR
- FROM V$PROCESS C
- WHERE C.SPID = &spid))
- ORDER BY PIECE ASC;
下载: getsess.sql
- SELECT SID, SERIAL#, USERNAME, MACHINE,PROGRAM
- FROM V$SESSION
- WHERE PADDR = (SELECT ADDR FROM V$PROCESS WHERE SPID = &spid);

六月 4th, 2008 at 7:00 下午
好东西
收藏了