Execution-Plan
圖形實際執行計劃 - 估計與實際行數
我在用:
- 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 來自估計的行數(每次執行)乘以估計的執行次數。
3.85562 * 4.37149 = 16.8548043 ~= 17
在SentryOne Plan Explorer中,*我們為您執行轉換,因此估計行僅從 17 開始,而不是 3.85562(我沒有嘗試這個特定計劃,但這就是程式碼中的邏輯應該如何工作)。我在這篇博文中描述了這背後的原因,早在修復首次出現在計劃資源管理器中時。
*
免責聲明:我為 SentryOne 工作。