摘要
Microsoft SQL Server 2016 中的部分查詢執行計畫包含評估資料表或索引掃描/範圍作業篩選的模式。 篩選述詞的某些部分可能符合索引鍵,因此可用於執行索引搜尋或範圍掃描。 述詞的其餘部分稱為殘差,必須透過掃描或範圍作業來評估每一列輸出。 這對應於篩選運算子。 不過,為了改善效能,SQL Server 可以將這類篩選向下推送到資料表存取運算子本身。
雖然此方法可提高整體效能,但在某些情況下 (例如,對於與參數敏感度) 相關的不准確基數估計,掃描下方篩選可能會處理比預期更多的數據列。 當您使用實際執行計劃時,在查詢效能疑難排解期間可能會隱藏此行為,因為傳回的列數會對應至套用殘差述詞之後的列數,而不是對應至從資料表或索引掃描的實際列數。
更新資訊
為了改善「徵狀」一節所述案例的診斷,SQL Server 2016 Service Pack 1 (SP1) 引進了新的執行計劃 XML 屬性,即 Estimated Rows Read。 此屬性提供在套用殘差述詞之前,運算子將讀取的估計資料列計數。 此更新是對 KB 3107397 的補充。
此功能包含在 SQL Server 2016 的 Service Pack 1 中。
關於 SQL Server 2016 組建
SQL Server 2016 的每個新組建都包含所有 Hotfix 和先前組建所包含的所有安全性修正程式。 建議您安裝 SQL Server 2016 的最新組建。
參考資料
了解 Microsoft 用來說明軟體更新的術語。