当前位置: 代码迷 >> Sql Server >> sqlserver 和 iis 两个占用的cpu 到了 50% - 90%了解决思路
  详细解决方案

sqlserver 和 iis 两个占用的cpu 到了 50% - 90%了解决思路

热度:593   发布时间:2016-04-27 14:17:42.0
sqlserver 和 iis 两个占用的cpu 到了 50% - 90%了
网站访问速度慢,sqlserver cpu占用率高

sqlserver 和 iis 两个占用的cpu 到了 50% - 90%了

其中 sqlserver在 35% -60% 左右,事件探查器里总有sql语句在循环执行。

有什么办法解决一下吗



------解决方案--------------------
看下是个什么循环。做些什么操作。
------解决方案--------------------
一般是写法不好的SQL引起的,查对应的进程.优化程序写法,
SQL code
-- 查询使用CPU最多的语句SELECT TOP 50        qs.total_worker_time/qs.execution_count as [Avg CPU Time],        SUBSTRING(qt.text,qs.statement_start_offset/2,             (case when qs.statement_end_offset = -1             then len(convert(nvarchar(max), qt.text)) * 2             else qs.statement_end_offset end -qs.statement_start_offset)/2)         as query_text,        qt.dbid, dbname=db_name(qt.dbid),        qt.objectid FROM sys.dm_exec_query_stats qscross apply sys.dm_exec_sql_text(qs.sql_handle) as qtORDER BY [Avg CPU Time] DESC
------解决方案--------------------
探讨
一般是写法不好的SQL引起的,查对应的进程.优化程序写法,

SQL code

-- 查询使用CPU最多的语句
SELECT TOP 50
qs.total_worker_time/qs.execution_count as [Avg CPU Time],
SUBSTRING(qt.text,qs.statement_start_offset/2, ……

------解决方案--------------------
探讨
这个语句在 SQL SERVER 企业应用级平台上见过

在SQL 2005技术内幕上也见过

------解决方案--------------------
第一步要做的是把web和db分开
------解决方案--------------------
探讨

一般是写法不好的SQL引起的,查对应的进程.优化程序写法,
SQL code

-- 查询使用CPU最多的语句
SELECT TOP 50
qs.total_worker_time/qs.execution_count as [Avg CPU Time],
SUBSTRING(qt.text,qs.statement_start_offset/2,
……

------解决方案--------------------
我的可以执行,不过还不是很明白,努力ing~mark
------解决方案--------------------
难道楼主的环境是SQL2000? 
  相关解决方案