远程登录服务器时发现程序执行时特别卡,利用任务管理器查看了下系统资源使用情况,监视一段时间后发现CPU占用不大,但是内存占用量居高不下,然后发现是Sqlserver.exe这个服务占用内存很大,达到了近2G服务器配置的8G内存,重启Sqlserver服务后内存只有50M左右,但是几天过后又达到了近2G的内存占用,网上查找了下关于这方面的优化策略。
1.使用SQL语句设置SQLserver内存分配:
--a.配置最小内存
--将最小内存设置为0MB
exec sp_configure N'min server memory (MB) ',16
--b.配置最大内存
--将最大内存设置为256MB
exec sp_configure N'max server memory (MB)',266
执行结果:
配置选项 'min server memory (MB)' 已从 14 更改为 16。请运行 RECONFIGURE 语句进行安装。
配置选项 'max server memory (MB)' 已从 444 更改为 266。请运行 RECONFIGURE 语句进行安装。
最后执行下面语句进行安装
reconfigure with override
执行结果:
命令已成功完成。
系统服务日志:
配置选项 'min server memory (MB)' 已从 14 更改为 16。请运行 RECONFIGURE 语句进行安装。
配置选项 'max server memory (MB)' 已从 444 更改为 266。请运行 RECONFIGURE 语句进行安装。
2.手动操作设置
右击本地服务器-->服务器属性-->内存 设置完,单击确定即可。
一般专门的数据库服务器内参最大不要超过系统的80%。避免内存被数据库占满造成服务器挂掉。
一般设置完后,需要将该SQL服务重启下。