700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > SQL server 强制释放内存

SQL server 强制释放内存

时间:2019-12-09 21:59:05

相关推荐

SQL server 强制释放内存

由于在日常的业务系统、BI服务器中进行了大量复杂的数据处理、查询等(特别是ETL过程),可能造成服务器内存占用比较多,此时导致其他查询或使用是效率极低。微软初始的目的是好的让更多更常用的数据驻留内存,但是这样对于BI的查询服务器与数据处理服务器为同一实体时却是一种弊端。当数据抽取(ETL)、模型处理(CUBE)处理完成后往往内存已经被占用殆尽(一般服务器),所以当用户进行查询时就显得效率很低。为了释放被占用的内存可采用如下2种方法。

测试环境:window r2、win7;sql r2

1、使用SQL语句释放内存

语句如下:此处用到sql数据库管理的高级配置项,所以要开启高级配置项管理

------------------------------------------------------------------------------------------------------

CREATE procedure ReleaseMemory

as

begin

--清除所有缓存(可选其他内存:清除系统缓存 DBCC FREESYSTEMCACHE('All') ;清除会话缓存 DBCC

FREESESSIONCACHE;清除存储过程缓存 DBCC FREEPROCCACHE )

DBCC DROPCLEANBUFFERS

--打开高级配置

EXEC ('RECONFIGURE')

exec sp_configure 'show advanced options', 1

EXEC ('RECONFIGURE')

--设置最大内存值(收缩用),清除现有缓存空间

exec sp_configure 'max server memory', 256

EXEC ('RECONFIGURE')

--设置等待时间(循环收缩) 此处可设置释放内存持续时间以控制释放多少内存

WAITFOR DELAY '00:00:05'

EXEC ('RECONFIGURE')

--重新设置最大内存值(还原sql最大内存)

EXEC sp_configure 'max server memory', 2147483647

EXEC ('RECONFIGURE')

--关闭高级配置

exec sp_configure 'show advanced options',0

EXEC ('RECONFIGURE')

end

-----------------------------------------------------------------------------------------------------

以上需要注意地方为:WAITFOR DELAY '00:00:05' 设置释放内存的执行持续时间

将以上存储过程放到SQL 的JOB里调用,执行时间及频率可自由设定

2、重启sql服务命令方法,可将sql重启,需要添加系统任务计划,将命令存放在bat文件中,代码如下:

--------------------------------------------------------------------------------------

rem 停止数据库代理服务

net stop sqlserveragent

rem 停止数据库服务

net stop mssqlserver

rem 启动数据库服务

net start mssqlserver

rem 启动数据库代理服务

net start sqlserveragent

---------------------------------------------------------------------------------------

以上命令如需自动执行需要进行系统计划配置,步骤如下:

1 开始->控制面板->管理工具->任务计划程序

2 任务计划程序库->创建任务(界面右侧栏)

3 (1)名称:任务名称 (2)“安全选项”->运行任务时,请选择如下用户:可设置执行用户 (配置)选择所用系统

4 触发器(什么时间执行任务):(1)新建:设置触发器什么时候执行(开机、登录、关机等,一把选用“制定计划时”);设置平率(每天、每周、每月、每年);延迟时间间隔(X小时)

5 操作(需要执行的脚本、程序):(1)新建:启用程序、发送邮件、显示消息 (2)设置:设置需要启动的程序、脚本等 (3)可配置 参数(程序、脚本使用)

6 条件(与触发器一起判断何时执行任务)

7 设置其他参数

完成以上设置即可完成自动重启SQL SERVER服务

备注:由于涉及到企业数据库服务器,除非数据库服务器是独立的(无其他系统使用),否则不要使用,收缩内存时一定要在服务器空闲时,否则造成其他应用系统报错、崩溃。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。