[英]“wait operation timed out” for sql command in ASP .NET app
我有一個舊的ASP .NET Web Forms
應用程序。 代碼隱藏VB .NET
。 它已經工作了10年。 一切都很好,並且工作非常快。
但是昨天我遇到了下一個問題:我對數據庫的SQL
查詢開始花費更長的時間。
我在.aspx
文件中有下一個代碼:
<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand=" "SOME SELECT DB QUERY (hardcoded)" ">
<!-- I know, that it is bad way to configure select command. But I'm not an author -->
<SelectParameters>
<!-- Parameters -->
</SelectParameters>
</asp:SqlDataSource>
使用MS SQL Management Studio中的服務器上的每個參數(經過測試)處理此SQL
查詢所花費的時間少於< 0.1
秒。 沒關系。
但是我的應用程序開始出現超時錯誤。 在SQL Server事件探查器中,此查詢(硬編碼)花費的時間超過30
秒(超時)(帶有某些參數,它的工作時間為14至20秒。但是,它的使用時間更長得多,例如2天之前)。
重要提示 :我已經解決了這個問題。 我已經使用此選擇查詢在MS SQL數據庫中創建了存儲過程。
並將.aspx
代碼更改為此:
<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand=" "PROCEDURENAME" " SelectCommandType="StoredProcedure">
<SelectParameters>
<!-- Parameters -->
</SelectParameters>
</asp:SqlDataSource>
這就解決了我的問題。
問題是:為什么它解決了我的問題? 我真的不太明白。 這對我來說很有趣。
也許您的數據庫連接查詢可能需要花費更多的時間來執行,或者服務器要花費更多的時間來執行數據庫查詢,所以您可以檢查托管數據庫的服務器。 檢查是否有太多正在運行的IIS應用程序池。
您還可以從配置文件中增加CommandTimeout來增加連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.