[英]“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.