SQL Server内存消耗

时间:2014-11-19 06:25:56

标签: sql sql-server

我在装有64 GB RAM的计算机上安装了SQL Server 2012。除了SQL Server之外没有安装任何内容。

SQL Server占用了所有物理内存,导致我的Web应用程序出现超时异常。

当我重新启动SQL Server时,它会降低到15 GB,然后逐渐增加,大约两周后,它会达到50 GB,这会导致超时异常。

有人可以为此建议解决方案,因为不建议每两周后重启一次SQL Server吗?

由于

2 个答案:

答案 0 :(得分:1)

SQL Server将继续缓存查询计划,表等,直到达到操作系统提供的最大可用内存,直到达到MAX MEMORY设置为止。因此,请检查您的MAX MEMORY设置并在需要时减少它。如需参考,请查看THIS

我正在复制Examples给出:

示例A

以下示例将max server memory选项设置为4 GB:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

示例B.确定当前内存分配

以下查询返回有关当前分配的内存的信息。

SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;

其次,有没有CLR组件?这些将使用额外的内存并可能继续保留。

第三,检查使用SQL Server的客户端应用程序。可能存在持有数据的开放连接。

答案 1 :(得分:1)

您可以通过ui配置最大内存。

转到SSMS - >选择服务器名称 - >右键单击属性 - >转到内存选项卡,在右侧窗格中给出最大大小。默认情况下它是无限的,意味着如果sql需要内存而处理器有内存,sqlserver会占用整个内存。

http://technet.microsoft.com/en-us/library/ms191144%28v=sql.105%29.aspx

如果您遇到问题,请点击"使用AWE分配内存"。

http://msdn.microsoft.com/en-us/library/ms178067.aspx

http://technet.microsoft.com/en-us/library/ms180797%28v=sql.105%29.aspx