摘要
Microsoft SQL Server 2016 中的某些查詢執行方案包含在資料表或索引掃描/範圍作業上評估篩選的模式。 篩選謂詞的某些部分可能會與索引鍵相符,因此可能會用來執行 [索引搜尋] 或 [範圍掃描]。 謂語的剩餘部分稱為 殘差,而且必須針對掃描或範圍作業針對每個列輸出進行評估。 這會對應到篩選運算子。 不過,為了改善效能,SQL Server 可以將這類篩選推送到 table 存取運算子本身。雖然這種方法可提升整體效能,但在某些情況下(例如,對於與參數敏感性相關的基數估計不正確),下列的 scan 篩選可能會處理比預期更多的資料列數。 當您使用實際的執行方案時,在查詢效能疑難排解期間,可能會隱藏此行為,因為傳回的列數會與應用程式剩餘謂語之後的列數相符,而不是從資料表或索引掃描的實際資料列數。
更新資訊
若要針對「症狀」一節中所述的案例改善診斷,請參閱 SQL Server 2016 Service Pack 1 (SP1)中的新的顯示計畫 XML 屬性、估計列已讀取。 這個屬性提供在套用剩餘謂語前,會由運算子讀取的估計列數。 此更新是 KB 3107397 的補充。此功能包含在 SQL Server 2016 的 Service Pack 1 中。
每個新組建的 SQL Server 2016 包含所有的修復程式,以及先前組建中所包含的所有安全性修正程式。 我們建議您安裝 SQL Server 2016 的最新組建。
參考
瞭解 Microsoft 用於描述軟體更新的 詞彙。