在我们的测试环境中,打开 SqlConnection 大约需要 5 秒钟。 我想调查为什么它需要这么长时间,但我不确定应该从哪里入手。 在连接打开之前,在 SqlProfiler 中没有任何条目。SQL Server(版本2012)运行在另一台机器上,我们从同一网络中的另一台计算机连接到它。 我们在控制台应用程序以及从 IIS(ASP.NET)中看到 5 秒钟的冻结。 通信本身是快速的。以下是 dotTrace 的屏幕截图: 我应该怎么做才能调查那五秒钟到底发生了什么?谢谢。 更新: 感谢大家的评论。问题出在身份验证上——当我们从集成身份验证切换到SQL身份验证后,减缓就消失了。
以下是通常的最佳选择: 将连接字符串从SSPI更改为SQL身份验证。如果SQL身份验证更快>请关注身份验证提供程序 将连接方式从tcp / ip更改为命名管道。如果命名管道更快,请关注网络堆栈 将连接字符串从使用主机名更改为完全限定主机名。如果更快>修复DNS / WINS属性。另请参见Initial connection to SQL Server Connection Is Slow. Why?。 将连接字符串从使用主机名更改为IP地址。如果更快,则修复DNS查找。另请参见https://social.msdn.microsoft.com/Forums/en-US/807748eb-51c8-4702-b7e9-fa32b7028747/sqlconnectionopen-takes-up-to-5-seconds-first-time-its-called-why-is-it-so-slow-using-net-35?forum= sqldataaccess