2012-11-27 28 views
0

如何在數據庫工作完成後釋放數據庫使用的RAM? (運行SP之前RAM使用率爲1.57,之後SP運行並結束,RAM使用率爲2.24 - 當重新啓動SQL Server時它將會OK)。如何在數據庫工作完成後釋放數據庫使用的RAM?

我們只有一個多用途服務器。該服務器是SQL Server主機,我們還在此服務器上運行其他企業應用程序,這些應用程序也需要可用的RAM空間。

如何確保這些應用程序有足夠的RAM來運行?

+2

你爲什麼需要?數據庫服務器應該使用盡可能多的可用內存,如果它要正確地完成其工作。數據庫工作完成後 – Oded

+0

!ram必須發佈!但它不會發生 –

+0

爲什麼「必須釋放」? – Oded

回答

0

我之前有過這樣的問題,我找到了解決這個問題的方法。 您可以創建stored procedure,如下所述: 在開始您的應用程序之前,您應該在模式1中調用此存儲過程,因爲您需要足夠的內存。

對於SQL操作和關閉應用程序之前,必須再次在模式0調用這個存儲過程:

Create Proc [dbo].[MP_Rpt_ConfigureMemory] 
( @Mode bit ) 
as 
declare @RAM as integer 
declare @MAX as integer 
declare @MIN as integer 

set @RAM = 
(SELECT 

     [physical_memory_in_bytes]/1048576 AS [RAM (MB)] 

FROM [sys].[dm_os_sys_info]) 

Set @MAX = ((@RAM/4) * 3) 
Set @MIN = ((@RAM/4) * 1) 

if @Mode=0 
begin 
     exec SP_Configure 'min server memory', 1 
     RECONFIGURE 
     exec SP_Configure 'max server memory', 100 
     RECONFIGURE 
end 
else 
if @Mode = 1 
begin 
     exec SP_Configure 'max server memory', @MAX 
     RECONFIGURE 
     exec SP_Configure 'min server memory', @MIN 
     RECONFIGURE 
end 
相關問題