16

我在具有多个显示器、16 gigs DDR4 RAM、4 Ghz I7、GTX 970 的开发盒上运行 Windows 10 Pro 64 位。我使用 SQL Server 2016 Developer Edition 以及 VS 2015 Enterprise Update 3 运行 SQL Management Studio。

昨天我将 Sql Management Studio 2016 升级到 13.0.15700.28,它对我的​​机器来说就像一颗毒丸。现在一两个小时后,它会抛出内存不足,除了:

执行批处理时出错。错误消息是:引发了“System.OutOfMemoryException”类型的异常

现在,如果您正在执行超过几百万行的非常大的返回集,这有时是典型的。如果你正在做

Select Top 10 * from SmallObject

我正在为现有开发系统的新对象创建一些新表和过程。而这只是突然发生,没有押韵或原因。它似乎也是 SSMS 的部分阻塞错误,因为它现在冻结系统并尝试打开一个连接对话框窗口,就像我第一次启动 SSMS 并尝试连接到数据源一样。到目前为止,它一直在爬行,直到我从任务管理器中杀死它。我也在运行 Redgate 的 SQL Prompt 7.2.0.241。我尝试过的事情:

  1. 尝试一次将标签保持在五个以下,并在我完成后关闭它们。
  2. 不要将标签从一个屏幕断开到另一个屏幕。
  3. 关掉Redgate,看看是不是罪魁祸首
  4. 边走边检查内存使用情况

我知道它昨晚在我上班时爆炸了,SSMS 让我知道它已经崩溃了。这可能是一个 MS 错误,但 Redgate 或我拥有的其他一些配置中可能存在一个错误,所以我认为最好问问 SO,看看其他人看到了什么。SSMS 的这个版本是 2016 年 8 月 15 日,所以它是非常新的。

来自应用程序事件日志的堆栈跟踪的两个错误:事件 1026

应用程序:ssms.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:

System.ComponentModel.Win32Exception at System.Windows.Forms.NativeWindow.CreateHandle(System.Windows.Forms.CreateParams) 在 System.Windows.Forms.Control.CreateHandle() 在 System.Windows.Forms.ComboBox.CreateHandle() 在 System .Windows.Forms.Control.CreateControl(Boolean) 在 System.Windows.Forms.Control.CreateControl(Boolean) 在 System.Windows.Forms.Control.CreateControl(Boolean) 在 System.Windows.Forms.Control.CreateControl(Boolean)在 System.Windows.Forms.Control.CreateControl(Boolean) 在 System.Windows.Forms.Control.CreateControl() 在 System.Windows.Forms.Control.WmShowWindow(System.Windows.Forms.Message ByRef) 在 System.Windows。在 System.Windows.Forms.ScrollableControl.WndProc(System.Windows.Forms.Message ByRef) 在 System.Windows.Forms.Form 的 Forms.Control.WndProc(System.Windows.Forms.Message ByRef)。WmShowWindow(System.Windows.Forms.Message ByRef) 在 System.Windows.Forms.Form.WndProc(System.Windows.Forms.Message ByRef) 在 System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms. System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef) 在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr) 的 Message ByRef)

另一个是事件日志 1002 错误“应用程序挂起”,我可以看到没有真正有意义的帮助:

Ssms.exe 2015.130.15700.28 68ac 01d1f98d17a32d16 4294967295 C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe 62a64950-658b-11e6-a2c8-f832e4a07fda

54006F00700020006C006500760065006C002000770069006E0064006F0077002000690073002000690064006C00650000000000

2016 年 8 月 23 日更新:

时不时还是会出现这个错误:

程序 Ssms.exe 版本 2015.130.15700.28 停止与 Windows 交互并已关闭。要查看有关问题的更多信息是否可用,请检查安全和维护控制面板中的问题历史记录。进程 ID:35f8 开始时间:01d1fca7e48da2da 终止时间:4294967295 应用程序路径:C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe 报告 ID:4e8b6ab9-693f-11e6-a2cb- f832e4a07fda 错误包全名:
错误包相关应用程序 ID:

显然,这对我以外的人来说是一个问题,因为我在这里获得了投票: https ://connect.microsoft.com/SQLServer/feedback/details/3062914/system-outofmemoryexception-throw-by-even-small-selects -现在随机

如果您遇到这种情况或知道潜在的解决方法,请告诉我。在这一点上,如果我必须做繁重的 SQL 工作,我正在考虑降级。同样,我在 Windows 10 64 位机器上,这仅在升级到最新的 SSMS 版本后发生。

2016 年 8 月 24 日更新

MS 现在似乎承认了这个错误。如果您遇到这种情况,请转到此链接并投票: https ://connect.microsoft.com/SQLServer/feedback/details/3074856

2016 年 8 月 31 日更新

MS关于异常的最新消息:

Microsoft 于 2016 年 8 月 29 日上午 10:21 发布结果证明实用程序类中存在线程泄漏。泄漏的线程数量将与您拥有的注册服务器数量成正比。下一个版本中将进行修复

我降级是因为工作比弄清楚发生了什么更重要。降级对我来说现在工作正常。我提供了 MS SQL 转储,因此希望他们能在未来几周内获得新版本。如果你很好奇,我在 13.0.15600.2 版本上并且稳定,因为我在两天前降级了。

4

3 回答 3

7

我有同样的问题。我只是关闭并重新打开 SQL Server。能够克服错误。

An error occurred while executing batch. Error message is: 
Exception of type 'System.OutOfMemoryException' was thrown.
于 2017-03-17T11:03:47.380 回答
4

好像他们用最新版本解决了这个问题:SSMS 16.4.1

5. 修复了抛出内存不足异常的问题。(Microsoft Connect 项目 #3062914)(Microsoft Connect 项目 #3074856)

于 2016-09-27T20:31:03.520 回答
1

这是由于缓存内存或未使用的临时文件造成的。

尝试删除 %temp% 位置上的临时文件。如果问题仍然存在,请重新启动 SSMS。

于 2018-02-02T10:51:32.297 回答