0

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

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

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

4

2 回答 2

1

更改“最大服务器内存”设置。如果您需要更多帮助,请阅读SQL BULK insert / BCP export 后未释放的已用内存一文。

于 2012-11-27T10:44:52.840 回答
0

我之前遇到过这样的问题,我找到了解决这个问题的方法。您可以按如下所述创建存储过程: 在启动应用程序之前,您应该在模式 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
于 2012-11-28T11:58:56.047 回答