服务器系统 2008R2,数据库2008R2
双核 单八核CUP,内存4条32G三星 共128G
目前情况是 系统使用的ERP很卡,并且数据处理慢,各接口传输的数据也慢
请技术分析一下 哪里出了问题 要怎么解决
平时一开始服务器 内存就一直高居不下,128G就占用了70-85G ,显示是SQL占用最高,并且还是没插网线的时候
检查 sqlserver中耗时指令,看是否可以优化
select top 100 qs.total_worker_time,last_worker_time,min_worker_time,max_worker_time,last_execution_time,execution_count,
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(ST.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text
,st.text
,*
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST
order by qs.max_worker_time desc
检查 mssql 中,并发任务锁状况,看是否可以减少并发或提高运行效率
检查触发器业务是否占用时间过长,是否可以使用 service broker 队列来代替触发器
检查是否有大量使用临时表的存储过程,查看 tempdb 设置是否匹配消耗
检查是否存在数据库错误,dbcc checkdb 一下
1、脱离业务来分析,不太稳妥
2、先把杀毒软件去除一个
3、根据你截图来看,需要先优化sqlserver
你肯定是有大量的SQL语句需要进行优化,SQL有个查询计划:
你这个需要根据服务器的实际情况去查找原因,根据你提供的数据,断网状态可以排除客户端连接引起的。
CPU占用很高可能是SQL语句引起的,使用Sql Server Profiler 找出耗性能的SQL 语句,80%的性能问题都是SQL语句引起的。
利用排除法,先找到导致问题的原因,才能对症解决。
1.先找到占用内存大的原因,再根据原因处理;如果是要执行大量计划或者数据传输就调整计划执行频率或者传输频率;如果执行大量查询那就就建立缓存。