sqlservr.exe cpu使用率过高 (数据库访问有阻塞)

qqqqqqqq_2013 2013-04-07 10:35:43
服务器最近cpu使用率很高,有时能到100% ,查了下是数据库的问题,数据库活动监视器里看到有阻塞而且都是自身阻塞(看了下有阻塞的sql命令都是查询),图片上传不了下面是活动监视器中截图的连接,各位大哥大姐帮帮忙了,先谢过了
http://blog.csdn.net/xiangyuhm/article/details/8766359
...全文
589 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqqqqqqq_2013 2013-04-08
  • 打赏
  • 举报
回复
qqqqqqqq_2013 2013-04-07
  • 打赏
  • 举报
回复
继续.......
夜予 2013-04-07
  • 打赏
  • 举报
回复
这个得根据当前的业务进行优化的,就是根据执行的sql命令找到堵塞的原因
SQL77 2013-04-07
  • 打赏
  • 举报
回复
根据你的确等待类型一个是并行查询阻塞.一个是排它锁的申请 你根据你的对应命令以及用户来进行调整. 并行查询看是否读取了大量数据导致.可考虑降低并行度.MAXDOP 把你命令放出来看看
發糞塗牆 2013-04-07
  • 打赏
  • 举报
回复
给点小建议:
1、在【运行】中输入resmon.exe,看看服务器上有没有其他非SQLServer应用的资源使用比SQLServer的还多。
2、使用性能计数器【运行】中输入pefmon.exe,监控相关的cpu计数器是否有问题。
3、如果2008,可以右键实例名,选择报表,再选择如图,看看那些语句耗资源,然后这些代码的执行计划是否有问题,优化脚本:

Q315054403 2013-04-07
  • 打赏
  • 举报
回复
这不是三五句能“指点”出结果的。。否则专业的DBA也就没了价值
haitao 2013-04-07
  • 打赏
  • 举报
回复
多核的系统,数据库占cpu能达100%,正常情况下,说明数据库表结构设计的好,能让sql并发执行了
Mr_Nice 2013-04-07
  • 打赏
  • 举报
回复
--1、统计占用cpu最多的查询,比如前10
SELECT TOP  10
	total_worker_time AS TotalTime,
	total_worker_time/execution_count AS avg_cpu_cost,
	plan_handle,
	execution_count,
	(SELECT SUBSTRING(text,statement_start_offset/2 + 1,
	(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_stats
ORDER BY [avg_cpu_cost] DESC


--2、性能监视器查看(检查重编译的情况)  这个需要lz有之前的正常状况基础信息,进行对比。
sql Server :sql statistics:batch requests/sec
sql Server :sql statistics:sql compilations/sec
sql Server :sql statistics:sql recompilations/sec

--3、查证前端语句使用,这个需要结合实际业务。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧