当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 如何找出消耗cup的进程信息和执行的语句

MSSQL
如何得到当前所在的sql的数据库名称
在VB中压缩ACCESS数据库
如何在SQL Server中恢复数据
解决SQL速度慢的方法
SELECT语句中“加锁选项”功能说明
在英文NT及SQL下,实现页面中中文出现
一个复合查询方法
利用Case敘述做SQL的動態排列
使用特殊数据
特殊数据(SQL)
SELECT查询的应用(一)
SELECT查询的应用(二)
SELECT查询的应用(三)
SQL Server如何解决加密问题?
如何在应用程序中避免死锁问题?
事务日志被填满的原因是什么?
讨论: SELECT TOP N问题 (2)
如何转移SQL SERVER数据库
SQL Server性能分析参数
用VB6读写数据库中的图片

MSSQL 中的 如何找出消耗cup的进程信息和执行的语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 85 ::
收藏到网摘: n/a

要找出最耗资源的sql,我们可以首先使用top等工具,找到最好资源的进程(记住进程号),例如,操作系统进程号为1217,然后根据这个进程号(v$process.spid)在v$process中找到进程地址(v$process.addr),然后根据这个地址在v$session中找到相应的sid(v$session.sid),然后根据这个sid找到相应的hash alue(v$session. sql_hash_value),然后根据这个hash alue在v$sqltext,$sql,v$sqlarea等视图中找到对应的sql语句(sql_text)。
 

例如:

oracle@cs_db02:/arch1/lunar/tools > whoistopsql.sh 6799
Connected.

       SID    SERIAL# USERNAME                       OSUSER                         MACHINE                        PROGRAM    PROCESS      TO_CHAR(LOGON_TIME,
---------- ---------- ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- ------------ -------------------
       483       1224 PORTAL                         www16                          bj_wap03                       JDBC Thin Client 2004/09/22 02:21:03


SQL_TEXT
----------------------------------------------------------------
SELECT * FROM SPINFO where spID = :1

oracle@cs_db02:/arch1/lunar/tools >