mssql sqlserver2008内存占用高的解决方法分享


摘要:
下文讲述sqlserver2008数据库中内存占用高的两种处理方法分享,如下所示:
实验环境:sqlserver 2008 R2



方法1:使用SSMS管理工具,设置其内存最大值。

1.1 使用SSMS管理器连接上数据库引擎
1.2 在连接上的数据库引擎上,点击右键 ,选择 “服务器属性”–>“选择 内存”–>在最大服务器内存中设置“适当的内存占用值”。
mssql_sqlserver_SSMS数据库引擎最大内存值设置

mssql_sqlserver_SSMS数据库引擎最大内存值设置



方法2:使用sql脚本查询出内存占用高的sql脚本,然后对其进行优化

  SELECT SS.SUM_EXECUTION_COUNT as [执行次数],
T.TEXT as [脚本内容],
SS.SUM_TOTAL_ELAPSED_TIME as [总执行时间],
SS.SUM_TOTAL_WORKER_TIME as [总作业时间],
SS.SUM_TOTAL_LOGICAL_READS as [逻辑读],
SS.SUM_TOTAL_LOGICAL_WRITES as [逻辑写]
FROM (SELECT S.PLAN_HANDLE,
SUM(S.EXECUTION_COUNT)SUM_EXECUTION_COUNT,
SUM(S.TOTAL_ELAPSED_TIME)SUM_TOTAL_ELAPSED_TIME,
SUM(S.TOTAL_WORKER_TIME)SUM_TOTAL_WORKER_TIME,
SUM(S.TOTAL_LOGICAL_READS)SUM_TOTAL_LOGICAL_READS,
SUM(S.TOTAL_LOGICAL_WRITES)SUM_TOTAL_LOGICAL_WRITES
FROM SYS.DM_EXEC_QUERY_STATS S
GROUP BY S.PLAN_HANDLE
) AS SS
CROSS APPLY SYS.dm_exec_sql_text(SS.PLAN_HANDLE)T
ORDER BY SUM_TOTAL_LOGICAL_READS DESC