SSMS 在每个查询上都会抛出 System.OutOfMemoryException

SSMS 在每个查询上都会抛出 System.OutOfMemoryException

我最近在 SSMS 中遇到了一些性能问题,挂起和速度变慢,但现在我开始看到我运行的任何查询都会引发内存不足异常。即使是像“SELECT TOP 1 1”这样简单的操作也不会返回任何结果。查看任务管理器,似乎 SSMS 并未达到 2BG 内存上限,而且我的总使用率仍低于 50%。

在此处输入图片描述 通过重新启动 SSMS 可以解决该问题,那么这可能是一些内存泄漏问题吗?

答案1

不确定这是否是同一个问题,但我注意到 SSMS 存在严重的内存泄漏问题(尽管是更高版本 - 17.4),这与 SQL 内容本身有关。

就我的情况而言,一个带有大量参数(90+)的 EXECUTE 命令在作为约 700+ 行的较大存储过程的一部分时导致了泄漏。

将此命令粘贴到过程中后,内存在几秒钟内达到分配限制,并且 SSMS 几乎完全没有响应。

编辑:我将其缩小到存储过程调用的一个参数中的 COALESCE 语句。在我输入关键字 COALESCE 时,内存泄漏就被触发了,甚至在我写完语句之前。

@price,
@opening,
@closing,
@issue_price,
coalesce(@ticker, @symbol), 
@isin,                      
@cusip,                         
@sedol, 

不过,它似乎只是作为较大过程调用的一部分发生。请注意,在我的例子中,将文件加载到 Visual Studio 2019 16.0.1 时也会出现同样的问题。

相关内容