2013-06-19 51 views
1

我刚刚移动到我的开发盒上的Windows 8,我遇到了所有外部SqlConnection.Open()命令需要2秒钟(连接到本地没有开销)的问题。这与SQL Server版本(2005,2008或2012)无关,并且不存在其他网络问题。我尝试了许多可能的解决方案(重新安装.net,SQL Server,Visual Studio等)。哪些诊断工具可用于追究或社区有什么想法?Windows 8:SQL Server连接延迟

PS - 全部SqlCommand.ExecuteNonQuery(),SqlCommand.ExecuteReader()等呼叫还有 0.5秒的开销。我能够通过将Encrypt = trueTrustServerCertificate = true添加到SqlConnectionStringBuilder来解决此问题。

+0

你如何连接到SQL服务器,Windows认证或SQL登录名/密码? – StrayCatDBA

+0

我已经尝试了两种方法同等延迟。 –

回答

0

我确实使用了Windows的事件跟踪功能,而且没有任何东西跳出我的身上。我也使用dotTrace,一次也没有。

最终,使用PerfMon的同事发现日志被趋势科技通知垃圾邮件。为了抑制噪音,他停止了服务(使用SA工具),性能问题消失了。事实证明,Windows Server 2012上的趋势科技对SQL Server连接有负面影响。此外,这是非常阴险的,并没有出现在任何日志或分析工具的罪魁祸首。呸。

0

Sql服务器网络库提供了广泛的跟踪功能,可以与ETW(Event Tracing for Windows)框架绑定。通过使用此跟踪功能,您将能够识别连接的哪个部分导致2秒的延迟。

Windows事件跟踪

的ETW框架是一个重量很轻,非常快的事件日志记录系统,能够抓住十级的每秒数千个事件以最小的开销。它内置于Windows核心,由发布事件的“提供者”组成。例如,IE,sql客户端库,.net框架和大多数Windows系统驱动程序公开事件。

订户注册他们感兴趣的事件,就是这样。如果没有人正在监听一个事件,它会变成一个最小的开销不操作。仅供参考,ETW驱动事件日志适用于所有版本Windows Vista开始(当他们介绍这些额外的Windows事件日志超出应用程序,安全和系统)

数据访问跟踪在SQL客户端库

鲍勃Beauchemin http://www.sqlskills.com写了一个excellent paper on the topic这是msdn上可用。去阅读它,并做一些谷歌搜索“ETW跟踪”,“BID跟踪Sql客户端”等。不幸的是,它需要一些工作来包装你的头,但它是非常强大的。

该过程将相当简单。配置跟踪,捕获活动,停止并检查跟踪。它将有详细的时间安排,并且您还可以捕获堆栈轨迹,因此您应该能够清楚地看到延迟并进一步调查。你也可以在事件中混合使用dns查找,加密,活动目录访问,网络活动等,如果你到达死胡同,尝试添加相关事件。这将是一个迭代过程,你最终可能会最终了解更多关于System.Data.SqlClient的内部,然后你更喜欢。

祝你好运,如果你需要额外的帮助理解跟踪文件,然后更新你的问题,我们将通过它。