mssql 自动回收内存

近日公司服务器频频出现由于内存不足而引起的IIS工作不正常的情况,通过观察,服务器的大部分内存都被SQL SERVER所占用。要想让SQL SERVER释放掉占用的内存,只能通过重新启动MSSQLSERVER服务来实现,SQL SERVER 2000自身并未提供类似的功能。

 
我联想到可以将停止与启动MSSQLSERVER服务的命令行做成批处理文件,同时结合Windows的“任务计划”功能,来实现定时自动释放SQL SERVER占用内存的方法,做法如下:
 
第一步,打开记事本,输入下列2行命令
 
net stop mssqlserver
net start mssqlserver
 
输入完毕后,另存为 resetsqlserver.bat 批处理文件。
 
第二步,在Windows的“任务计划”功能里,添加一条新的任务计划,让系统在每天的03:00执行一次 resetsqlserver.bat 这个批处理文件即可。
 
这样一来,通过上面两步我们就为服务器增加了一个定时自动释放SQL SERVER占用内存的功能,通过我这几天的观察,效果很不错。
 
完整bat代码如下:
@echo off
color 0a
title MSSQL 重启,释放内存
echo *******************************************************************
 
echo *******************************
echo * MSSQL 开始停止MSSQL
echo *******************************
net stop mssqlserver
echo *******************************
echo * MSSQL 开始重启
echo *******************************
net start mssqlserver
echo *******************************
echo 按任意键退出...
pause>nul
exit
 
带SQL代理服务的版本
 
@echo off
color 0a
title MSSQL 重启,释放内存
echo *******************************************************************
 
echo *******************************
echo 开始停止MSSQL 代理
echo *******************************
net stop sqlserveragent
 
echo *******************************
echo 开始停止MSSQL
echo *******************************
net stop mssqlserver
 
echo *******************************
echo * 开始重启 MSSQL
echo *******************************
net  start mssqlserver
 
echo *******************************
echo *  开始重启 MSSQL 代理
echo *******************************
net start sqlserveragent
 
echo *******************************
echo 按任意键退出...
pause>nul
exit
 
 

    相关文章

评论

发表新评论

此内容将保密,不会被其他人看见。
点击刷新验证码
  • 可用的 UBB 标签:
  • 留言最长字数:1000。