Sql Server 经常出现CPU占用100%的情况,重启后能运行一段时间,一般情况下CPU占用很正常,偶尔瞬时占用较高达80~90%,数据记录相对较,30W~40W条记录运行一段时间后就会出现100%居高不下,只有重启才行,有时一天出现几次,有时不会出现。请大家帮忙分析原因?程序占用的连接没有及时释放?
优化SQL查询?(这是肯定要做的工作之一了)
优化索引?有什么可能?用什么方法排查问题较好?
优化SQL查询?(这是肯定要做的工作之一了)
优化索引?有什么可能?用什么方法排查问题较好?
2:操作系统的一个工具:管理工具-->性能
查看那sql执行时间最长
select --top 5
(total_logical_reads/execution_count) as [平均逻辑读取次数],
(total_logical_writes/execution_count) as [平均逻辑写入次数],
(total_physical_reads/execution_count) as [平均对象读取次数],
Execution_count 运行次数,
substring(qt.text,r.statement_start_offset/2+1,
(case when r.statement_end_offset = -1
then datalength(qt.text)
else r.statement_end_offset end - r.statement_start_offset)/2+1) [运行语法]
from sys.dm_exec_query_stats as r
cross apply sys.dm_exec_sql_text(r.sql_handle) as qt
order by
(total_logical_reads + total_logical_writes) Desc在不同时间点和性能高峰期分别抓取相应数据供分析。
2、使用SQL Server Profiler跟踪一下
不管是SQL 7、2000 、2005 、2008
先用SQL Server Profiler跟踪
然后找到哪几条SQL占用资源较厉害
考虑建索引
考虑缓存占用资源的SQL的页面先搞完这些看看再说吧
优化一部分数据表索引
最终又加上静态生成
SQL的CPU问题得到一定程度的缓解各位的意见都很受用,话不多说,散分