尝试使用Windows身份验证通过TCP连接到SQL Server 2012实例时,SQL Server Management Studio 2014出现了非常长的延迟(10〜30秒)。连接对象资源管理器或新的空白查询窗口时,会发生这种情况。连接后,运行查询很快。当我使用SQL Server身份验证进行连接时,不会发生此问题。
环境:
- Windows 7,以域用户身份登录
- 通过IP地址的TCP连接(不是主机名)
- 服务器位于通过VPN连接的远程位置
- 没有加密
当我使用我的域帐户登录到同事的Windows 7计算机上并通过同一VPN连接到同一SQL Server时,没有延迟。当同一位同事使用自己的域帐户登录我的PC时,他遇到了延迟。这些测试表明问题是我的PC独有的。同样,仅当连接到此特定的SQL Server和VPN时,才会出现问题。我可以通过Windows身份验证立即连接到本地网络上的其他SQL Server。
我尝试过的没有成功的事情:
- 禁用的防病毒和防火墙
- 将“%userprofile%\ AppData \ Roaming \ Microsoft \ SQL Server Management Studio”下的“ 12.0”文件夹重命名为“ _12.0”,以强制SSMS重新创建我的用户设置。
- 将网络协议强制为TCP,而不是TCP
<default>
。我也尝试过命名管道,但是没有为此设置服务器。 - 安装了SSMS 2012,并尝试使用它而不是2014。
- 禁用的IPv6
- 在我的etc \ hosts文件中将Blackholed crl.microsoft.com更改为127.0.0.1。
- 在SSMS,Visual Studio和Windows中禁用了“客户体验改善计划”。
- 从我的PC上卸载所有与SQL Server相关的应用程序,仅在2012年重新安装。
TCPView线索:
- 使用TCPView,我注意到当我建立一个新的连接时,它的状态立即变为ESTABLISHED,但是随后又不断尝试与SQL Server建立一个或两个连接,并使用TIME_WAIT关闭它。在我同事的计算机上,这些连接已建立且牢固。因此,我很确定这是超时的根源,但是连接的目的是什么,为什么连接失败?(我的SSMS中没有任何插件。)
有任何想法吗?
更新:Intellisense /自动完成提示(?):
我注意到,一旦我终于建立连接,Intellisense /自动完成功能就无法使用。这些是否需要与SSMS分开的连接?我尝试禁用它们,但似乎无法解决长时间的连接延迟。