我在装有64 GB RAM的计算机上安装了SQL Server 2012。除了SQL Server之外没有安装任何内容。
SQL Server占用了所有物理内存,导致我的Web应用程序出现超时异常。
当我重新启动SQL Server时,它会降低到15 GB,然后逐渐增加,大约两周后,它会达到50 GB,这会导致超时异常。
有人可以为此建议解决方案,因为不建议每两周后重启一次SQL Server吗?
由于
答案 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