我在ASP.NET应用程序中有一个报告。当我尝试从浏览器生成它时,它会因数据库超时错误而崩溃,但是当我在SQL Management Studio中执行完全相同的查询时,它会在5秒内显示结果集。
查询在代码隐藏文件中写入了不清洁的SQL(没有使用ORM),它的参数来自Web表单,所以我知道确切生成的查询是什么。
问题的原因是什么?
答案 0 :(得分:0)
首先,使用SQL事件探查器附加到数据库并查看正在发送的查询。用于其他测试。
其次,将连接超时设置为300秒之类的荒谬。然后对命令超时执行相同的操作。
第三,确保您的应用程序和管理工作室实例正在与同一数据库通信...最好具有完全相同的用户权限。
再次运行。然后再次运行它。
数据库可能需要花时间进行初始加载(因此第一次查询需要一段时间),并且管理工作室的查询正在执行,而数据库仍然“热”可以这么说。
最后,你说管理工作室在5秒内显示结果。它是5秒开始填充查询结果窗口还是5秒,整个查询完成执行。那些时间可能完全不同。