首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >资源池“默认”中的系统内存不足,无法运行此查询。论sql

资源池“默认”中的系统内存不足,无法运行此查询。论sql
EN

Stack Overflow用户
提问于 2014-08-12 14:16:39
回答 4查看 143.2K关注 0票数 42

我有一个运行服务,每分钟有50-100个查询。这些都不是高成本的查询。该服务已经运行了大约3-4个月,没有任何错误。

几天前,它突然开始给“资源池的‘默认’中没有足够的系统内存来运行这个查询。”偶尔出错。当我调查这个问题时,我发现sqlservr.exe正在使用大约1.5GB的内存和%25的CPU(全部是1/4CPU)。当我重新启动sqlservr.exe时,内存从大约50 it开始,慢慢增加,直到达到1.5GB,然后导致使用它的应用程序崩溃。

在我做了一些研究之后,我发现这是由我使用的sql server版本造成的。这是特快专递版,把数字限制在那些。因此,我已经将我的sql server从'2008r2 express'升级为'2012 enterprise'。当我启动该服务时,我认为我的问题终于结束了,因为服务只使用了~60 my的内存,但不幸的是,在一个小时内也出现了同样的问题,但这次我在windows任务管理器上看到的内存仍然是60 my,没有超出任何限制。

我在wcf服务中使用EntityFramework作为ORM。此外,我还提供了一些缓存操作的SqlQueryNotification(broker等)系统。

我是不是遗漏了一些关键的配置点?或者6GB的内存和我的4 CPU真的不够吗?但这不可能,因为相同的负载是这样的3个月,没有任何错误,当时,也没有任何变化的代码。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-12 14:28:42

SQL Server将从所需的内存开始,然后慢慢增加,直到它使用服务器属性中分配给它的所有内存:

在重新启动服务之前,它不会释放任何内存;这是根据设计的。

通常建议将2ish GB留给操作系统,并且您需要注意在与SQL相同的服务器上运行的任何其他处理。通常建议将Server放在自己的服务器上,而不需要在服务器上运行任何其他操作。

也就是说,用于Server的1.5GB内存并不多。如果您没有更多可用的,那么可能是时候添加一些或升级服务器了。

另见:Technet布伦特·奥扎尔

票数 34
EN

Stack Overflow用户

发布于 2019-12-05 12:18:45

我张贴这个答案是因为有人可能会发现它有用。

即使使用此查询,也可以设置max server memory

代码语言:javascript
运行
复制
sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'max server memory', 32768;   -- for 32 GB
GO  
RECONFIGURE;  
GO

此外,您可以使用此查询释放内存,而无需重新启动服务,只需将其设置为2GB (2048),然后再次更改为32 GB (32768)或您想要的值。

请不要将其设置在1GB以下,因为它将导致执行查询时出错,因此您需要重新启动服务才能执行查询,即使是这个查询也会再次增加内存。

票数 11
EN

Stack Overflow用户

发布于 2020-08-04 14:42:28

在我们的例子中,这是由于内存优化的表类型,拥有大量的数据。同时对不同的存储过程进行多次调用,每次调用都使用相同的表类型,并在其中加载大量的记录(>100,000)。对于我们的应用程序,可以减少插入到内存优化表类型中的记录数量--也就是说,如果将所有选定的项存储在内存优化的表类型中,那么我们只能有条件地存储非选定的记录。

代码语言:javascript
运行
复制
CREATE TYPE [TestType] AS TABLE (
    [TestOrder]    VARCHAR (1500)    NOT NULL,
    [TestDepartment] UNIQUEIDENTIFIER NULL,
    [TestCourse] UNIQUEIDENTIFIER NULL,
    [TestStudent] UNIQUEIDENTIFIER NULL,
    INDEX IX_Test NONCLUSTERED (TestOrder))
    WITH (MEMORY_OPTIMIZED = ON);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25266663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档