当前位置: 代码迷 >> Sql Server >> sql server2000服务被远程访问CPU占用很高,该如何处理
  详细解决方案

sql server2000服务被远程访问CPU占用很高,该如何处理

热度:78   发布时间:2016-04-27 11:28:22.0
sql server2000服务被远程访问CPU占用很高
机房有台windows server2003的服务器上装了sql server200。服务器配置为4CPU,8G.
同网段内的客户端访问数据库服务很正常。
但是不同网段的客户端访问数据库服务器,能连接上数据库服务,直接ping 数据库服务所在的服务器。延时小于1毫秒。
但是在服务器上通过任务管理器查看到sqlserver.exe这个进程的CPU占用率为50%。请问大家遇到过这样的问题吗?


------解决方案--------------------
cpu高的问题 应该是内部的语句导致吧 查出占用CPU比较多几个sql语句 分析下
------解决方案--------------------
一般是由SQL语句引起的,

用SQL Profiler工具跟踪一下.
------解决方案--------------------
平均<80%的使用状况,应该都可以接受。

lz,业务高峰期,cpu 多少?



------解决方案--------------------
LZ先用以下SQL语句查询是否有比较占CPU的查询
SQL code
SELECT substring(text,qs.statement_start_offset/2,(CASE WHEN qs.statement_end_offset = -1 THEN len(convert(nvarchar(max), text)) * 2 ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) ,qs.plan_generation_num as recompiles,qs.execution_count as execution_count,qs.total_elapsed_time - qs.total_worker_time as total_wait_time,qs.total_worker_time as cpu_time,qs.total_logical_reads as reads,qs.total_logical_writes as writes,last_execution_timeFROM sys.dm_exec_query_stats qsCROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) stLEFT JOIN sys.dm_exec_requests r ON qs.sql_handle = r.sql_handleORDER BY 3 DESC
------解决方案--------------------
网络连接中 禁用再启用下网卡 试试
------解决方案--------------------
用SQL Profiler工具跟踪一下.


SQL code
--占用CPU最多SELECT TOP 10 total_worker_time / execution_count       AS [Avg CPU Time],              (SELECT Substring(text, statement_start_offset / 2, ( CASE                                                                      WHEN statement_end_offset = -1 THEN Len(CONVERT(NVARCHAR(max), text)) * 2                                                                      ELSE statement_end_offset                                                                    END - statement_start_offset ) / 2)               FROM   sys.Dm_exec_sql_text(sql_handle)) AS query_text,              *FROM   sys.dm_exec_query_statsORDER  BY [Avg CPU Time] DESC 找到后分析问题所在
------解决方案--------------------
应该是程序连接上后执行了什么耗CPU的SQL语句,
用SQL Profiler工具跟踪一下.
------解决方案--------------------
连接进去以后SYSPROCESS中看到有什么信息吗?有没有什么耗资源的执行?
  相关解决方案