实际上我正在研究一个运行缓慢的SQL查询,我只能通过SSMS访问生产数据库。我没有直接访问生产服务器或分析器,因为它是共享服务器。生产机器和开发机器都有相同的执行计划。但根据我的开发机器,统计逻辑读取和Profiler读取之间存在巨大差异。所以我必须在生产服务器上确认相同的区别。
通过生产服务器上的SSMS:
我可以通过编写以下内容来查看STATISTICS IO:
SET Statistics IO ON
我可以通过编写以下内容来查看STATISTICS TIME:
SET Statistics TIME ON
我可以按:
查看实际执行计划CTRL+M
但是有没有办法在SSMS中查看SQL Server Profiler的读取。
修改
也许这篇文章可以帮助您理解我的问题:INF: Differences in STATISTICS IO, SQL Profiler and Sysprocesses IO Counters (SQL 7 & 2000)。 Quote:“因此,一般情况下,SQL事件探查器报告的逻辑读取与STATISTICS IO报告的逻辑读取的总和不匹配。但是,SQL事件探查器中读取的报告数应始终等于或比STATISTICS IO值更大。“。
在我的情况下,根据我的开发机器,它们之间存在巨大差异。并且性能会受到生产机器的影响,并且仍然显示两台计算机上的统计逻辑读取都非常低。
第二次修改:
两台计算机上的XML实际执行计划相同。
巨大意味着两台计算机上的统计IO几乎 45 ,但开发计算机上的Profiler读取 4764 。