我在具有多个显示器、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。我尝试过的事情:
- 尝试一次将标签保持在五个以下,并在我完成后关闭它们。
- 不要将标签从一个屏幕断开到另一个屏幕。
- 关掉Redgate,看看是不是罪魁祸首
- 边走边检查内存使用情况
我知道它昨晚在我上班时爆炸了,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 版本上并且稳定,因为我在两天前降级了。