2012-11-27 29 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 
相关问题