方法/步驟
-
登陸SQL Server。
-
准備自動強制釋放內存的SQL腳本。
本文結束后有SQL腳本內容。
-
選中SQL SERVER代理下級作業節點右鍵新建作業。
作業名稱填“每天凌晨3點定時清理內存”。
-
配置作業的步驟。
在新建作業彈出窗口中,選步驟頁面,按下圖中的7個步驟完成配置后點確定。
-
配置作業的計划。
在新建作業彈出窗口中,選計划頁面,按圖中的9個步驟完成配置后點確定。
-
完成作業的計划配置后,點確認,每天凌晨3點定時清理內存的定時作業就完成了配置了。
-
總結操作步驟:
1. 登陸SQL Server。
2. 准備自動強制釋放內存的SQL腳本。
3. 選中SQL SERVER代理下級作業節點右鍵新建作業。
4. 配置作業的步驟。
5. 配置作業的計划。
6. 完成作業的計划配置后,點確認,每天凌晨3點定時清理內存的定時作業就完成了配置了。
-
第二種方法,通過設置服務器最高內存值的方法來釋放內存,具體操作是先把服務器最大內存設置成一個小值,但不能太小,太小容易使SQL SERVER掛掉,然后再把服務器最大內存值設置回合適的值,建議占服務器總內存的80%。
請查看本人寫的另一篇經驗
-
附加參考內容。
----自動強制釋放內存的SQL腳本
DECLARE @TargetMemory decimal(19,2),@TotalMemory decimal(19,2),@UseMemoryPecent decimal(19,2)
SELECT @TargetMemory=cntr_value FROM sys.dm_os_performance_counters
WHERE counter_name='Target Server Memory (KB)'
SELECT @TotalMemory=cntr_value FROM sys.dm_os_performance_counters
WHERE counter_name='Total Server Memory (KB)'
SET @UseMemoryPecent=@TotalMemory/@TargetMemory
SELECT @UseMemoryPecent
IF @UseMemoryPecent>0.1
BEGIN
--清除存儲過程緩存
DBCC FREEPROCCACHE
--清除會話緩存
DBCC FREESESSIONCACHE
--清除系統緩存
DBCC FREESYSTEMCACHE('All')
--清除所有緩存
DBCC DROPCLEANBUFFERS
--打開高級配置
EXEC sp_configure 'show advanced options', 1
--設置最大內存值,清除現有緩存空間 1000 M (根據實際情況設置,具體思路是最大值先調小,然后再設回合適的值。)
EXEC sp_configure 'max server memory', 1000
EXEC ('RECONFIGURE')
--設置等待時間,強制釋放內存需等待一些時間
WAITFOR DELAY '00:01:30'
--重新設置最大內存值 3000 M 根據實際情況設置,具體思路是最大值先調小,然后再設回合適的值。)
EXEC sp_configure 'max server memory', 3000
EXEC ('RECONFIGURE')
--關閉高級配置
EXEC sp_configure 'show advanced options', 0
END