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

MSSQL
SQL Server数据库技术(36)
SQL Server数据库技术(37)
SQL Server数据库技术(41)
SQL Server数据库技术(42)
SQL Server数据库技术(43)
SQL Server数据库技术(44)
SQL Server数据库技术(45)
SQL Server数据库技术(46)
SQL Server数据库技术(47)
SQL Server数据库技术(48)
SQL Server数据库技术(49)
SQL Server数据库技术(50)
SQL Server数据库技术(51)
SQL Server数据库技术(53)
SQL Server数据库技术(54)
SQL Server数据库技术(55)
SQL Server数据库技术(56)
SQL Server数据库技术(57)
SQL Server数据库技术(58)
SQL Server数据库技术(59)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 70 ::
收藏到网摘: 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 >