我遇到了一個似乎與某個Web服務器配置相關的問題,並導致查詢隨機執行很長時間。該應用程序是使用舊的普通ASP和ADODB連接創建的。使用ADODB連接運行查詢隨機執行需要很長時間
的情況去如下:
- 有在處理此連接被用於執行對SQL Server查詢每個HTTP請求
- 年初在腳本中打開一個連接,那位於一個單獨的盒子上。使用conn.Execute。連接沒有被關閉之後
- 通常有幾個在單個ASP頁幾十conn.Execute的
所有一直很好,直到最近,當一些conn.Execute的開始採取更長的執行時間,完全隨機。
- 區別在於例如15ms的正常運行時間與2000毫秒的SQL Server端執行時間長
- ,探查器不顯示較長的查詢執行時間,因此必須有東西擋住了conn.Execute要求
當一個正確的做法在每次執行conn.Execute後關閉連接,問題就會消失。但是,正如我之前所說的,直到最近,所有這些工作一直都是完美無缺的。這個網絡應用程序是一個相當大的應用程序,重寫它關閉和正確地重新打開連接將需要一些時間。我需要一個短期解決方案。
我的猜測是它可能與連接池大小有關,但這不是ADO.NET,因此我不確定連接池問題是否應該納入考慮範圍。在SQL Server端,對服務器的併發連接數沒有限制。
我需要一些提示。集思廣益可能的想法。
提示:我最終發現,當通過系統DNS(ODBC,TCP/IP傳輸)建立連接時,問題就在那裏。當我強制連接字符串中的SQLNCLI提供程序(使用Provider = SQLNCLI)時,問題就消失了。很好,但爲什麼它首先發生......? –
是否有最近的補丁或更新應用於服務器? – Jesse
是的,有。這是由遠程位置的第三方託管和管理的專用盒子。好點,忘了在我原來對問題的描述中加上這個,我以爲我做到了。 –