将SQL Server和Management Studio从2008升级到2012后,打开新的查询窗口和对话框时,Management Studio 2012的运行速度非常慢。

即使右键单击表也很慢。在开始在窗口内执行任何操作之前,通常至少需要5秒钟的延迟。即使我连续两次打开同一个窗口,每次也会发生这种情况。为什么会发生这种情况,我该如何解决?

其他应用程序可以非常快速地建立与数据库的连接。

我尝试过的事情没有帮助:


在Google上很受欢迎,我需要修改我的hosts文件
重置SSMS“用户定义的设置”
更新视频驱动程序,关闭硬件加速,禁用DirectX
禁用生物特征认证服务(我没有安装它)。

我的计算机应该足够快,并且我还具有16GB的RAM。我的硬件绝对应该不是问题。看来SSMS正在等待某件事-在发生这种情况时,我可以顺利运行其他程序。

我没有机会安装SQL Server 2012 CU1更新,因为似乎存在一些风险安装修补程序时出错,我现在不能冒险。

评论

我没有看到这种行为。如果这样做,那么我可以做进一步的调查,我可以尝试(1)使用“进程监视器”查看进程在做什么以及是否提供任何线索。 (2)使用SQL Server Profiler来查看从SSMS发送的任何查询是否持续时间长(例如,阻塞)。(3)将调试器附加到SSMS进程并在挂起过程中对其进行中断,以查看函数的名称是否在其中。调用堆栈显示了任何内容。

#1 楼

SQL Server Management Studio启动

启动Microsoft的SQL Server Management Studio(SSMS)时,它将尝试连接Microsoft的证书吊销列表(CRL):

http:// crl .microsoft.com / pki / crl / products / MicrosoftRootAuthority.crl

SSMS的基础.NET组件正在尝试联系证书吊销列表,而SSMS无法这样做。这减慢了整个加载过程。 (显然每个证书15秒)


好的,这就是发生了什么。 SSMS托管代码的比例很高,所有这些代码在我们出厂时都已签名。在启动时(如果选中此设置),. Net运行时将尝试与crl.microsoft.com联系,以确保证书有效(有一段时间,有些虚假证书以Microsoft的名义发行,因此这是一个非常有效的问题) 。如果没有Internet连接或联系证书吊销列表服务器有问题,则这将延迟SSMS启动。


参考:常见问题,为什么SSMS需要45秒钟才能启动? (MSDN博客)


导致此问题的一个问题是,如果服务器无法访问Internet,则.NET框架将无法访问crl.microsoft。 com网站,以验证用于对托管应用程序的二进制文件进行签名的数字签名是否有效。 .NET运行时实现中,每个证书检查都有15秒的超时时间。根据所安装的功能,这可能会增加一分钟的Management Studio启动时间。


参考:SQL Server Management Studio启动时间(MSDN博客)

解决方案

您可以通过通过直接在浏览器中输入链接直接下载证书,然后将证书导入证书数据库


或-

您可以重新配置(公司的)防火墙允许连接到Microsoft的CRL


或-

您可以重新配置个人防病毒/防火墙,以允许连接到Microsoft CRL。


或-

您可以将(公司的)防火墙配置为将访问Microsoft CRL的请求更快地发送给客户端。


或-

您可以将IE配置为不再在浏览器中“检查发布者的证书吊销”高级设置。

(有关详细信息,请参见上述博客1和2)

评论


做了所有这些事情。对于我来说,SSMS仍然很慢。

– Saeed Neamati
20年8月9日在8:41

#2 楼

当我连接到服务器名称“ ./”时,我的经验与您相同。运气不好,我发现当我连接到服务器名称“(本地)”时,我没有遇到性能问题。 SSMS 2012通过“ ./”解析服务器的方式可能存在问题。 NET连接。

#3 楼

SSMS可能已经导入了无法正确处理的设置(例如与某些服务器的连接或某些外接程序设置)。

有一种残酷的方式来“重置”用户,

关闭SSMS,然后转到文件夹:

 C:\Users\YOURWINLOGINNAME\AppData\Roaming\Microsoft\SQL Server Management Studio\
 


您将找到子文件夹“ 11.0”。将其重命名为“ 11.0_”,因此您随时可以将其重命名。现在启动SSMS-它会重新创建干净的设置,也许您的问题将得到解决。如果不是,请删除新生成的“ 11.0”,然后将“ 11.0_”重命名为“ 11.0”。

这也可能是某些外接程序的行为,该外接程序在升级后已损坏。外接程序将自身注册为某些命令或事件的处理程序,如果缺少/引发异常,系统可能会变得不稳定。

实际上,v2012使用另一种机制注册外接程序,但某些外接程序在所有实例上自行安装。要检查,请查看以下注册表项:

 [HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio.0_Config\AutomationOptions\LookInFolder]
 


您会在此处找到文件夹列表。检查所有这些文件夹-它们必须为空(意味着您没有加载项)。

#4 楼

我猜问题是打开与服务器的新连接需要5秒钟。为什么我无法确切地说出这种情况,并且需要使用导线来进行分析和诊断。您应该调查正在尝试哪些协议以及最终成功的协议。可能是您的客户端首先尝试命名管道(取决于SMB),然后回退到TCP(尽管在这种情况下,通常的延迟要长得多,大约20-30秒)。

我建议您在“客户端网络配置”中检查客户端协议的顺序。通过在sys.dm_exec_connections中找到您自己的条目来检查客户端使用的协议。

#5 楼

尝试禁用防病毒,然后检查sql server 2012 management studio的性能。

评论


这个建议的依据是什么?

–马丁·史密斯
13年8月25日在14:38

哈哈那个老栗子

–迈克
昨天

#6 楼

我在SSMS 2016上遇到了同样的问题。我使用procmon来确定它在几秒钟的延迟之前所做的最后一件事是建立与Microsoft IP地址的网络连接。然后,我尝试通过将注册表项HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server0CustomerFeedback从1设置为0来关闭客户体验计划。重新启动SSMS后,它又可以快速工作。大概不会总是导致新查询窗口变慢,但对我而言确实如此。

我不知道SSMS 2012是否正在发生这种情况,但也许值得一试。注册表项可能是110而不是130

#7 楼

我没有亲身经历这个问题,但是很多人(这里)有很长的话题。一般建议似乎与通过以下方式使用视频驱动程序有关:


安装更新的视频驱动程序-OR-
降低或关闭硬件性能-OR- <
关闭DirectX支持

在线程中也有此答案...
“ Windows 7干净启动过程显示,生物识别身份验证服务(DigitalPersona DPHostw.exe)服务是问题。禁用该服务解决了问题。“

我想知道这些方法中的任何一种是否也适用于您的情况,因为我发现的线程与SSMS的旧版本(例如2005)相关。 ,2008等...

#8 楼

我遇到了同样的问题,结果是趋势科技Office扫描导致了此问题。

我尝试了其他几个类似线程中描述的有关此问题的所有尝试,但均无济于事。我想我将尝试禁用AV软件。.趋势科技Office扫描关闭后,SSMS会快速变亮。

在Windows 7上不会发生这种情况。

#9 楼

右键单击表以调出上下文菜单时,我也遇到了5到10秒的延迟。我的情况可能与某些情况有所不同,因为我仅使用本地数据库。我的解决方案:

阅读了伊姆兰关于禁用防病毒软件的答案后,我又采取了进一步的措施,因为我不想完全禁用我的防病毒软件只是为了克服这个问题。

/>通过更改默认数据库位置,然后从防病毒软件中排除该目录(我使用的是Microsoft System Center Endpoint Protection 2015),我大大减少了延迟(现在是最大1秒)。 >
有关更改默认数据库位置的信息,请参见以下文章。
http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server /

#10 楼

关于SSMS 2016和注册表更改。我的路径是

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server0\Tools\Setup\UserFeedbackOptIn  


我将其从1更改为0,并且SSMS又很快了。

#11 楼

有时,只需关闭大量缓存的查询窗口即可解决此问题。

我的SSMS实例在已保存的缓存中有大约15个查询(每次打开SSMS都会打开)-我关闭了所有这些Windows和重新启动的SSMS,问题立即消失。

#12 楼

我有ssms v17.0,我也遇到了右键单击上下文菜单较慢的问题。
我卸载了ssms,卸载了sql server,将计算机重命名为“ MyBox”而不是“ xja-13-asdfa3”。然后,我重新安装了sql server,然后重新安装了ssms,并在右键单击表格时解决了我所有的SLOW上下文菜单问题。我想象某个地方出现DNS问题,而等待则与等待dns超时有关。工厂使用默认的随机PC名称。

#13 楼



SQL Server 2012中的SSMS现在使用Visual Studio 2010 shell,它比SQL Server 2008中SSMS使用的shell占用更多的资源。我建议升级计算机或使用SQL Server 2008 R2中的SSMS。您应该能够使用旧版本执行大多数任务。

您还可以尝试安装最新的累积更新,因为它们也会更新客户端工具。 SQL Server 2012的最新版本当前是CU1。

http://support.microsoft.com/kb/2679368/

#14 楼

更改计算机名称使其不带有“-”对我来说是固定的。

#15 楼

请不要使用简短的NetBIOS名称,这一点很重要!

如果这样,Management Studio将使用某种旧式连接。一切都会很烦人。只需使用运行sql server的计算机的IP或全名即可。

如果要查找计算机的NetBIOS名称是什么,请运行查询:

select @@Servername


这将返回机器的短名称(我认为是15个字符长的旧名称)。不要使用那个。

#16 楼

对我来说,是BitDefender防火墙使我的SSM变得非常慢
显然,某种防火墙阻止了对数据库列表的访问

#17 楼

我知道这个问题很旧。但是这是我的解决方案。每次都对我有用:

用记事本打开C:\Windows\System32\drivers\etc\hosts
将此行添加到其中127.0.0.1 SomeNameHere

保存(确保通过重新打开将其保存)
现在使用SomeNameHere连接到SQL Server Management Studio,



#18 楼

应该将数据库属性“自动关闭”的状态检查到“自动”组中。

如果为true,则在每次查询后,将关闭连接,并在每个新查询时重新打开。这肯定会减慢您在ssms中的工作。默认值为false。

#19 楼

可能是您的计算机上没有足够的RAM吗?

SQL 2012的建议RAM是4 go。对于SQL 2008来说,这是2项测试。
http://msdn.microsoft.com/zh-cn/library/ms143506.aspx

由于您已从SQL 2008升级到2012,也许您需要更多RAM?

#20 楼

当我使用管理员权限(右键单击并以管理员身份运行)启动SSMS时,它可以正常工作,否则新的查询窗口将花费更长的时间

#21 楼

造成这种情况的原因几乎总是缺少网络驱动器-例如如果您的笔记本电脑有驱动器映射,但笔记本电脑已关闭。

不幸的是,解决方法是打开笔记本电脑(使驱动器重新连接)或断开Windows资源管理器中的驱动器(但是随后您必须重新连接它们。)

有关更多信息,请参见此处:
http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/ 64c13a84-3e62-4b0c-a1ce-65fcc78d6787

评论


此问题特定于SSMS 2012-我怀疑2010年2月之后的msdn线程是否有意义。

– JNK
2012年7月5日在12:06