我在用:
- SQL Server 管理工作室 v18.1
- SQL Server 2017 CU9
- AdventureWorks 从这里恢复
测试查询:
USE [AdventureWorks];
GO
SELECT TOP (13) *
FROM Sales.SalesOrderHeader AS s
INNER JOIN Sales.SalesOrderDetail AS d ON s.SalesOrderID = d.SalesOrderID
WHERE s.TotalDue > 1000
OPTION (RECOMPILE);
GO
打开实际执行计划 (Ctrl+M)。看着“聚集索引搜索”,我看到了13 of 17 (76%)
。查看我看到Estimated Number of Rows
或Estimated Number of Rows to be Read
看重的属性是 3.85562。我的问题是这个数字 17 是从哪里来的?
数字 17 来自估计的行数(每次执行)乘以估计的执行次数。
在SentryOne Plan Explorer中,*我们为您执行转换,因此估计的行仅从 17 开始,而不是 3.85562(我没有尝试这个特定的计划,但这就是代码中的逻辑应该如何工作)。我在这篇博文中描述了这背后的原因,早在修复首次出现在计划资源管理器中时。