数据库工作完成后,如何释放数据库使用的RAM?

时间:2012-11-27 10:40:01

标签: sql-server-2008-r2

如何在数据库工作完成后释放数据库使用的RAM? (在运行SP之前,RAM使用率为1.57,之后,SP运行并完成,RAM使用率为2.24 - 重新启动SQL Server时,它就可以了。)

我们只有一台多功能服务器。此服务器是SQL Server主机,我们还在此服务器上运行其他企业应用程序,这些应用程序也需要空闲的RAM空间。

如何确保这些应用程序有足够的RAM运行?

2 个答案:

答案 0 :(得分:1)

更改“最大服务器内存”设置。如果您需要更多帮助,请阅读帖子 Used memory not freed up after a SQL BULK insert / BCP export

答案 1 :(得分: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