SQL Server Management Studio缓慢打开新窗口


29

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

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

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

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

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

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

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


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

Answers:


11

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配置为不再“检查发布者的证书吊销”。

(有关详细信息,请参见上述博客12


7

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

编辑:我不认为它与SSMS有关,因为我可以在ADO.NET连接中使用./来重现缓慢。


6

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

有一种残酷的方式来“重置”用户定义的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\11.0_Config\AutomationOptions\LookInFolder]

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



3

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

  1. 安装更新的视频驱动程序-OR-
  2. 减少或关闭硬件性能-OR-
  3. 关闭DirectX支持

从线程中也有此答案... “ Windows 7干净启动过程显示问题出在生物特征验证服务(DigitalPersona DPHostw.exe)服务上。禁用该服务解决了该问题。”

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


3

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

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


3

我有同样的问题,结果是趋势科技Office扫描引起了问题。

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

在Windows 7上没有发生这种情况。


3

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

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

通过更改默认数据库位置,然后从防病毒中排除该目录(我使用的是Microsoft System Center Endpoint Protection 2015),我大大减少了延迟(现在为1秒最大)。

有关更改默认数据库位置的信息,请参见以下文章。 http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/


3

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

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


2

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\Setup\UserFeedbackOptIn  

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


2

有时可以通过简单地关闭大量缓存的查询窗口来解决此问题。

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


2

我有ssms v17.0,我也遇到了右键单击上下文菜单缓慢的问题。

计算机的名称中包含破折号,将计算机重命名为简单名称,并进行了修复。

我卸载了ssms,卸载了sql server,将计算机重命名为“ MyBox”之类的简单名称,而不是“ xja-13-asdfa3”。然后,我重新安装了sql server,然后重新安装了ssms,这解决了在右键单击表格时所有SLOW上下文菜单问题。我认为发生DNS问题的地方和等待与等待dns超时有关。

我有一台笔记本电脑,出厂时开箱即用默认随机PC名称,该笔记本电脑带有16个千兆内存,SSD驱动器和一个3GHz的CPU。


1

在我的电脑上很快。

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

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

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



0

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


-1

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

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



-2

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


-3

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

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

请参阅此处以获取更多信息:http : //social.msdn.microsoft.com/Forums/en-US/sqltools/thread/64c13a84-3e62-4b0c-a1ce-65fcc78d6787


1
此问题特定于SSMS 2012-我怀疑2010年2月之后的msdn线程是否有意义。
JNK 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.