数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

使用Windows工具管理Nt上的Oracle数据库


发布日期:2024年06月28日
 
使用Windows工具管理Nt上的Oracle数据库

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

上一篇:在Oracle10g里启动自动归档模式

下一篇:Oracleextract函数抽取时间