返回列表 发帖

sqlserver2000,数据库服务器cpu老是99%,怎么办?

sqlserver2000,更新应用之后,数据库服务器cpu老是99%,怎么办?
  
如何找出那条低性能的sql出来,以及运行sql的那条进程,kill进程呢?我有思路,但是不知道具体sql命令。

SQL code

-- 调查当前占用 cpu 资源最高的会话和其中执行的语句
select spid,cmd,cpu,physical_io,memusage,
(select top 1 [text] from ::fn_get_sql(sql_handle)) sql_text
from master..sysprocesses order by cpu desc

-- 获取上面的信息后,需要根据实际情况具体分析此语句,如排序操作是否利用了聚集索引等等。

TOP

SQL code

性能探查工具
查找原因吧

还有看看是不是数据库占用了CPU,是否服务器的其他问题。

TOP


还有别的操作命令吗?

TOP

學習了- -

TOP

A. 使用 KILL 终止 SPID
下面的示例显示如何终止 SPID 53。
  
KILL 53
  
B. 使用 KILL spid WITH STATUSONLY 获得进度报告。
下面的示例为特定的 spid 生成回滚进程的状态。
  
KILL 54
KILL 54 WITH STATUSONLY
  
--This is the progress report.
spid 54: Transaction rollback in progress. Estimated rollback completion: 80% Estimated time left: 10 seconds.
  
C. 使用 KILL 终止孤立的分布式事务。
下例说明如何使用 UOW = D5499C66-E398-45CA-BF7E-DC9C194B48CF 终止孤立 (SPID = -2) 事务。
  
KILL 'D5499C66-E398-45CA-BF7E-DC9C194B48CF'
  

TOP

用性能探查工具
事件追踪器查看

TOP

看一下数据库占用的空间,收缩一下,限制增长,

TOP

sysprocesses 系统表
select * from sysprocesses order by cpu

TOP

返回列表