SQL Server Management Studio(2016/2017)打开空白查询窗口内存不足求助
解决SSMS打开空白查询窗口时的“内存不足”错误
看起来你遇到了个挺棘手的情况——重启机器后,SSMS 2016/2017连空白查询窗口都打不开,直接报内存不足,而且常规的重启应用、修复安装、重启机器都不管用,和那些因为大查询/结果集导致的内存问题完全不一样。我来分享几个针对性的排查和解决方法:
可能的排查方向与解决方案
清理SSMS的用户配置文件
SSMS的用户配置文件有时候会莫名其妙损坏,导致启动空白窗口时异常占用内存。你可以试试删除对应版本的配置文件夹:- SSMS 2016:
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\SQL Server Management Studio\13.0 - SSMS 2017:
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\SQL Server Management Studio\14.0
删除后重启SSMS,它会自动生成全新的配置文件,大概率能解决配置损坏导致的问题。
- SSMS 2016:
检查系统内存占用与SSMS进程优先级
重启后可能有后台进程悄悄占了大量内存,导致SSMS连启动空白窗口的内存都拿不到:- 打开任务管理器,看看进程标签里哪些程序占内存最多,关掉那些暂时用不到的(比如浏览器开了几十个标签页、大型办公软件之类的)。
- 如果还是不行,找到SSMS进程,右键选转到详细信息,再右键把它的优先级设为高,给它多分配点内存资源试试。
禁用SSMS扩展,排查插件问题
第三方扩展或插件有时候会搞事情,导致SSMS启动时内存泄漏:- 按住
Ctrl键启动SSMS,这会进入安全模式,所有扩展都会被禁用。 - 如果安全模式下能正常打开空白窗口,那肯定是某个扩展的锅。你可以依次启用扩展,每次启用后重启SSMS,找到那个有问题的扩展卸载掉就行。
- 按住
调整SQL Server的内存配置
有时候SQL Server数据库引擎把内存占满了,SSMS根本没内存可用:- 如果你能通过其他方式打开SSMS(比如先连接到服务器,再新建查询?实在不行用SQLCMD命令行连接),执行下面的查询看看当前内存配置:
SELECT name, value, value_in_use, description FROM sys.configurations WHERE name LIKE '%max server memory%' - 如果
max server memory设置得太高(比如接近物理内存的90%甚至更高),可以适当调低,比如设为物理内存的70%左右:sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'max server memory (MB)', <目标MB数>; RECONFIGURE;
改完后重启SQL Server服务,再试试打开空白窗口。
- 如果你能通过其他方式打开SSMS(比如先连接到服务器,再新建查询?实在不行用SQLCMD命令行连接),执行下面的查询看看当前内存配置:
修复或重装.NET Framework
SSMS严重依赖.NET Framework,如果.NET出了问题,也可能导致内存分配异常:- 打开控制面板→程序和功能,找到Microsoft .NET Framework的对应版本(SSMS 2017需要4.6.1及以上),选更改→修复。
- 要是修复没用,就下载对应版本的.NET Framework重新安装一遍。
内容的提问来源于stack exchange,提问作者W.L.
相关产品推荐
相关产品推荐

