2013-06-19 95 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的內部,然後你更喜歡。

祝你好運,如果你需要額外的幫助理解跟蹤文件,然後更新你的問題,我們將通過它。