我正在使用Microsoft 2012,并试图在Management中对其运行一个简单的查询。我得到了以下错误(在SSMS中,运行在服务器上):
执行批处理时发生错误。错误消息是:引发了“System.OutOfMemoryException”类型的异常。
该系统安装了24 is内存,但在任务管理器中,sqlservr.exe进程仅使用2.9GB。
是否有限制其RAM使用的设置?
发布于 2014-08-29 14:48:05
此错误表示Management内存不足,而不是Server服务。即使安装了64位Server,可执行文件也是32位应用程序。
这很可能是由于返回到Management的结果集的大小造成的。您是否正在执行类似really_big_table的SELECT *?有关更多信息,请参见http://support.microsoft.com/kb/2874903。
发布于 2014-08-29 15:58:21
Mike是对的,您正在接收的错误消息来自Management应用程序本身,而不是来自Server。本地工作站上的内存已经耗尽,这可能是因为试图将160亿行数据拖到客户端应用程序中(在网格中显示大量数据在内存方面是相当昂贵的,因此尝试使用TOP等限制查询。我不知道您可以使用足够的数据来使用所有本地内存(S)做什么实际的事情)。
但我确实想解决另一个问题:使用任务管理器来评估Server使用的内存量。别这么做,这是个胆大妄为的骗子。复制从这个答案 (您的问题是双重的,所以我不能真正关闭它作为一个副本):
您永远不会信任任务管理器告诉您SQL Server使用了多少内存。停止使用任务管理器,句号。使用性能计数器-还可以使用DMVs查询性能计数器:
SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Total Server Memory (KB)';您可以将其保存为工具>选项>环境>键盘>查询快捷方式中的查询快捷方式,并在查询窗口中获得准确的结果比从任务管理器获得不准确的结果快得多。
您还可以使用以下查询检查内存压力(以及是否可以对其进行任何处理):
SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');
-- SQL Server 2012:
SELECT physical_memory_kb FROM sys.dm_os_sys_info;
-- Prior versions:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;
EXEC sp_configure 'max server memory';发布于 2015-03-26 05:55:30
我的案子也是一样。我的开放了几天。我重新启动它就解决了。
https://dba.stackexchange.com/questions/75326
复制相似问题