我在Visual Studio 2010
Web应用程序项目中有一个数据集,该项目使用复杂的SQL
语句访问DB。如果我直接运行SQL Management Studio
中的语句,它将在不到一秒的时间内加载。但是,如果我在数据集设计器中使用"预览数据"按钮运行它,或者我尝试在页面上访问它(例如使用gridview),则需要40多秒!
在使用数据集时,我应该采取什么步骤来跟踪导致这种巨大延迟的原因?
有两种情况:
- 问题是在应用程序级别
- 问题是在数据库级别,实际上是一个
SQL
查询本身
因此,作为第一步,尝试排除一种情况,从我的角度来看,更容易的是调试SQL
端:
- 运行
Sql Profiler
- 运行查询
from Management Studio
- 保存分析器日志
- 清除分析器日志
- 运行"Preview DataSet"
- 比较执行日志,查看
SQL
是否有差异
以下步骤
把sql分析器放到数据库服务器上,以确定应用程序正在执行什么sql命令
数据集类的性能非常差,您应该尝试使用数据读取器
您可以使用stopwatch实例来获取不同的时间,以确定哪里是慢行代码