我有一个 SP,在 SqlServer 环境中需要 20 秒,但有时在我的 ASP.NET 页面中,当我运行 SP 时,我得到 SqlServer 超时说明。我事件将命令超时和连接超时设置为 60,但我仍然收到异常。我将不胜感激地帮助我。
其他一些操作可能会锁定表。 将超时设置为更高的值并检查。
运行 proc 时,执行sp_lock
并sp_who2
系统过程以进行任何锁定
试试
cmd.CommandTimeout = 0;
如果您执行查询需要很长时间。
1)尝试了类似??
SqlCommand cmd = new SqlCommand("MyReport", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 3660; //// or set it zero (0)
2)和这个???
3) 假设您的数据库服务器和执行点不同,您的互联网/内联网连接是否正常?
4) 检查 VPN 连接(如果使用)
从 SSMS 执行查询并保存执行计划。然后运行应用程序并让 SQL 事件探查器捕获跟踪,然后从探查器保存执行计划,如此链接中所述。
比较两个执行计划以找出执行的实际差异。
检查参数探查。如果问题仍然存在,请确保数据库统计信息已更新,有时这可能是删除并创建过程后的问题。
我认为问题是将参数从应用程序发送到存储过程。再试一次,但这次使用 SQL Server 事件探查器来跟踪查询执行。您可以在 SQL Server 事件探查器中使用文本数据列值,并再次运行实际执行的查询以查找真正的问题。