在我們的ASP.Net網站上,我們有一些請求超時。 AppDynamics顯示SQL過程調用在幾秒鐘內就會返回,但我們在SNIReadSyncOverAsync中花費了100多秒。什麼是SNIReadSyncOverAsync,爲什麼需要很長時間才能完成?
有沒有人知道這種方法是做什麼的,爲什麼會花費那麼多時間?我們沒有使用在每個問題/帖子中引用的EF,我已經能夠找到它。
在此先感謝
更新
它已經有一段時間,雖然我們未曾來決議,爲什麼所有的時間用在SNIReadSyncOverAsync正在度過的,我有幾個想法。
我認爲在這種情況下,它可能是特定版本的AppDynamics報告SQL調用花費的時間的方式,但我沒有真正的數據來支持這一點,只是我從我觀察到的。我們最終不再看到所報告的時間是在SNIReadSyncOverAsync中花費的時間,而是轉移到查詢本身超時。
這仍然沒有做很多,因爲相同的查詢會立即在同一個數據庫的SSMS上運行。
最終的答案最終與ARITHABORT有關,導致我們的應用程序和SSMS使用兩種不同的執行計劃(請參閱https://dba.stackexchange.com/a/9841),解釋了爲什麼我們無法使用SSMS重現超時。一旦我們解決了這個問題,我們就能夠確定需要調整的過程的一些部分,並且自那以後我們還沒有遇到不明原因的超時或SNIReadSyncOverAsync。
MS的任何更新? – too 2014-06-10 11:41:55
不幸的是,我們無法解決問題。更奇怪的是,更新版本的AppDynamics不再在SNIReadSyncOverAsync方法中顯示問題,而是在DbDataAdapter.Fill – 2014-07-02 21:54:05