使用getsql.sql脚本即可获得当前正在执行的SQL语句: --来自Eygle网站上 REM getsql.sql REM author eygle REM 在windows上,已知进程ID,得到当前正在执行的语句 REM 在windows上,进程ID为16进制,需要转换,在UNIX直接为10进制 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 = TO_NUMBER ('&pid', 'xxxx'))) ORDER BY piece ASC /
然后在PL/SQL中运行该脚本就可以找到最消耗资源的问题SQL,接下来就可以进行针对性调整了.4. pslist工具 PsList是一个能够列出进程和其线程占用资源具体信息的小软件。 PsList is utility that shows you a combination of the information oBTainable individually with pmon and pstat. You can view process CPU and memory information, or thread statistics. What makes PsList more powerful than the Resource Kit tools is that you can view process and thread statistics on a remote computer.。
点击查看大图
{$PageTitle关于Oracle进程和Windows线程的对照关系} 5. 关于Oracle进程和Windows线程的对照关系 事实上通过性能监视器或者QSlice工具、PsList看到的线程即可能是Oracle中的用户进程,也可能是Oracle的后台进程;这些工具给出的线程号也都是16进制的数字,不太有利于数据库的监控;因此我们必须把Oracle的后台进程以数据库的语言列举出来。 对于Oracle用户进程,则可以取出来在Oracle进行分析判定。 SELECT spid, name FROM V$BGPROCESS, V$PROCESS WHERE V$BGPROCESS.paddr=V$PROCESS.addr;Spid name1848 PMON3100 DBW02568 LGWR3080 CKPT1868 SMON3040 RECO3776 CJQ0