mssql sqlserver2008 避免sql服务器内存被占满的三种方法分享


摘要:
下文讲述避免sqlserver内存被占满的三种方法,如下所示:
实验环境:sql server 2008 R2


方式1:通过系统配置设置服务器最大内存

  SP_CONFIGURE 'max server memory',58*1024
  GO
  RECONFIGURE WITH OVERRIDE
  GO

方式2:使用系统存储过程,获取sql server中占用内存大的sql脚本,
然后通过优化相应的脚本,改善sql server服务器的内存

     SELECT 
SSum.SUM_EXECUTION_COUNT as [执行次数],
SSText.TEXT as [文本内容],
SSum.SUM_TOTAL_ELAPSED_TIME as [总耗时],
SSum.SUM_TOTAL_WORKER_TIME as [耗时],
SSum.SUM_TOTAL_LOGICAL_READS as [逻辑读],
SSum.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 SSum
CROSS
APPLY SYS.dm_exec_sql_text(SSum.PLAN_HANDLE) SSText
ORDER 
BY SSum.SUM_TOTAL_LOGICAL_READS DESC

方法3:
在数据库引擎上,点击”右键”,依次点击”内存”–>将相关选项进行设置
修改最大服务器内存使用值,如下图所示:
mssql_sqlserver_最大内存值占用设置

mssql_sqlserver_最大内存值占用设置



各选项说明:
使用 AWE 分配内存:
此选项应用于32位操作系统,勾上此选项后 windows 2000和windows2003操作系统最大可支持64G物理内存。
最小服务器内存(MB):
指定sqlserver服务器最小使用内存值,此值会一直被占用不会释放。
最大服务器内存(MB):
指sqlserver运行中,最大占用的内存值,如果一台服务器上面运行很多应用时,此时我们应该合理的设置此值,使其它应用都得到运行。 这种方式运行的应用程序与 SQL Server 同时运行在同一台计算机上,则请设置该选项的值,保证应用程序所需的内存不会由
创建索引占用的内存:
指索引创建排序时使用的内存情况(KB),当此值为0时,代表启用动态分配,无需进行相关设置。
用户可以输入:704~2147483647
每次查询占用的最小内存(KB):
指执行查询分配的内存量 (KB),
用户可输入512~2147483647 之间的值,
默认为1024。
——————————————————–
配置值:
代表相关设置值
运行值:
查看配置是否成功。