TOP
Top 工具可以监视最消耗系统资源的进程
Pid 即process idWindows是多线程服务器每个进程包含一系列线程这个与UNIX不同Unix每个Oralce进程独立存在在Nt上所有线程由Oralce进程衍生
所以只用TOP工具我们还无法找出每个连接的用户进程
% ????:: No Name Found% ????:: System% B?? ?:: CSRSSEXE% ? ?:: rundllexe% C? ?:: AOMexe% E? ?:: XDICTEXE% ? ?:: NetCaptorexe% F? ?:: oracleexe% ? ?:: SQLPLUSEXE
如果windows上由于某个进程的sql或其他问题导致资源过度占用或消耗比如如下这样一条语句那么我们怎样来找到这条问题sql呢?
QSLICE
找到最消耗资源的线程号本例中为(ec)为进制需要转换v$process视图中的进程ID为十进制
使用getsqlsql脚本即可获得当前正在执行的SQL语句
REM getsqlsqlREM author eygleREM 在windows上已知进程ID得到当前正在执行的语句REM 在windows上进程ID为进制需要转换在UNIX直接为进制SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (ahash_value aaddress) IN ( SELECT DECODE (sql_hash_value prev_hash_value sql_hash_value ) DECODE (sql_hash_value prev_sql_addr sql_address) FROM v$session b WHERE bpaddr = (SELECT addr FROM v$process c WHERE cspid = TO_NUMBER (&pid xxxx)))ORDER BY piece ASC/
运行以上脚本:
ok找到这最消耗资源的问题SQL接下来就可以进行针对性调整了
相关工具下载地址
iceoasp