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