2011-04-26 85 views
0

有没有办法将SQL Server 2008 R2使用的内存重置为如果我重新启动服务时的内存? (但我不想重新启动该服务)SQL Server 2008,恢复RAM内存

我尝试使用

Checkpoint -- Write dirty pages to disk 
DBCC FreeProcCache -- Clear entire proc cache 
DBCC DropCleanBuffers -- Clear entire data cache 

但我总是通过重新启动该服务释放更多的内存。

+1

这样做的目的是什么? SQL服务器尝试分配尽可能多的连续内存并自行管理它。您可以在配置时决定是否要分配给SQL服务进程的“动态”或“静态”内存量。也许如果您可以阐述目的,我们可以尝试提供解决方案。 – dawebber 2011-04-26 03:50:38

+0

你不需要释放sql server的内存。 – 2011-04-26 04:00:07

+0

事实证明,max mem设置不包括SQLCLR使用的内存,我大量使用SQLCLR。这就是为什么SQLServer使用的内存可能比最大的人更大。 – Nestor 2011-05-16 13:14:08

回答

0

我发现了优秀的网络广播Mission-Critical SQLCLR,它解释了SQL Server中的max mem设置不包括SQLCLR使用的内存。 要了解SQLCLR实际使用了多少内存,您可以运行:

select * 
from sys.dm_os_memory_objects 
where [type] like '%CLR%' 
0

您可以使用sp_configure过程来更改最大服务器内存(MB)配置设置。 SQL Server将无需重新启动即可调整到新设置。

您应该使用所需的值配置此设置,如果发现SQL Server占用其他进程所需的内存,请将其保留。