如何调试数据集性能



我在Visual Studio 2010 Web应用程序项目中有一个数据集,该项目使用复杂的SQL语句访问DB。如果我直接运行SQL Management Studio中的语句,它将在不到一秒的时间内加载。但是,如果我在数据集设计器中使用"预览数据"按钮运行它,或者我尝试在页面上访问它(例如使用gridview),则需要40多秒!

在使用数据集时,我应该采取什么步骤来跟踪导致这种巨大延迟的原因?

有两种情况:

  • 问题是在应用程序级别
  • 问题是在数据库级别,实际上是一个SQL查询本身

因此,作为第一步,尝试排除一种情况,从我的角度来看,更容易的是调试SQL端:

  1. 运行Sql Profiler
  2. 运行查询from Management Studio
  3. 保存分析器日志
  4. 清除分析器日志
  5. 运行"Preview DataSet"
  6. 比较执行日志,查看SQL
  7. 是否有差异

以下步骤

把sql分析器放到数据库服务器上,以确定应用程序正在执行什么sql命令

数据集类的性能非常差,您应该尝试使用数据读取器

您可以使用stopwatch实例来获取不同的时间,以确定哪里是慢行代码

最新更新