MS SQL缓存清除与内存释放

MS SQL Server系统内存管理在没有配置内存最大值,很多时候我们会发现运行SQL Server的系统内存往往居高不下。这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统峰值时(预留内存根据系统默认预留使用为准,至少4M),才会清除一些缓存释放少量的内存为新的缓存腾出空间。

这些内存一般都是SQL Server运行时候用作缓存的,例如你运行一个select语句, 执行个存储过程,调用函数;

1.数据缓存:执行个查询语句,SQL Server会将相关的数据页(SQL Server操作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。

2.执行命令缓存:在执行存储过程,自定函数时,SQL Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。

在我们执行完相应的查询语句,或存储过程,如果我们不在需要这些缓存,我可以将它清除,DBCC管理命令缓存清除如下:
SQL:

--1.清除存储过程缓存   
DBCC FREEPROCCACHE  
--注:方便记住关键字 FREEPROCCACHE 可以拆解成 FREE(割舍,清除) PROC(存储过程关键字简写),CACHE(缓存)  

--2.清除会话缓存  
 DBCC FREESESSIONCACHE   
--注: FREE(割舍,清除) SESSION(会话) CACHE(缓存)   

--3.清除系统缓存  
 DBCC FREESYSTEMCACHE('All')  
--注:FREE  SYSTE MCACHE  

--4.清除所有缓存  
 DBCC DROPCLEANBUFFERS  
--注: DROP CLEAN BUFFERS  

虽然我们已经清除了缓存,但是SQL并未释放相应占用的内存。 它只是腾出新的空间为之后所执行脚本所用。SQL Server 并没有提供任何命令允许我们释放不用到的内存。因此我们只能通过动态调整 SQL Server可用的物理内存设置来强迫它释放内存。

操作原理是调整内存配置大小。手动操作方法:
1.打开SQL Server Management(企业管理器);
2.打开SQL Server实例的属性面板;
3.找到内存设置,改变其中的最大服务器内存使用即可 。

使用脚本操作:

--1.强制释放内存  
CREATE procedure [dbo].ClearMemory    
as begin  

--2.清除所有缓存  
DBCC DROPCLEANBUFFERS  

--3.打开高级配置  
exec sp_configure 'show advanced options', 1  

--4.设置最大内存值,清除现有缓存空间  
exec sp_configure 'max server memory', 256  
EXEC ('RECONFIGURE')  

--5.设置等待时间  
WAITFOR DELAY '00:00:01'  

--6.重新设置最大内存值  
EXEC  sp_configure 'max server memory', 4096  
EXEC ('RECONFIGURE')  

--7.关闭高级配置  
exec sp_configure 'show advanced options',0  
GO  

下面提供内存查看功能的一些脚本语句:

--1.内存使用情况       
SELECT * FROM sys.dm_os_performance_counters   
WHERE counter_name IN ('Target Server Memory (KB)','Total Server Memory (KB)')   

-- 2.内存状态   
DBCC MemoryStatus   

--3.查看最小最大内存   
SELECT configuration_id as id,
               name as 名称,
               minimum as 配置最小值, 
               maximum as 最大值,   
               is_dynamic as 是否动态值, 
               is_advanced as 是否优先, 
               value_in_use AS 运行值,   
               description as 描述 
FROM sys.configurations
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容