如何在数据库工作完成后释放数据库使用的RAM? (在运行SP之前,RAM使用率为1.57,之后,SP运行并完成,RAM使用率为2.24 - 重新启动SQL Server时,它就可以了。)
我们只有一台多功能服务器。此服务器是SQL Server主机,我们还在此服务器上运行其他企业应用程序,这些应用程序也需要空闲的RAM空间。
如何确保这些应用程序有足够的RAM运行?
答案 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