徵狀
假設您執行涉及聯結或匯總的查詢 在單一欄和多個欄所覆蓋的資料行上 [統計資料] (此欄位不是前導欄)。 如果您使用的是 預設基數估價器(CE)在 SQL Server 2016 中,可能低估了 number 不同的資料列。 這會產生子最佳的查詢執行方案(例如:低估計值可能會造成雜湊運算子的記憶體不足,這會造成查詢溢出到 tempdb)。
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。
解決方案
此問題已在下列 SQL Server 累積更新中修正:
注意: 若要讓此修正程式生效,您必須使用追蹤旗標(TF)4199或相對應的資料庫範圍設定或查詢提示選項來啟用 Query 優化器修復程式。
關於 SQL Server 的累積更新:
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
因應措施
您可以新增下列查詢提示來修正此問題:
按照 提示("FORCE_LEGACY_CARDINALITY_ESTIMATION")
參考
瞭解Microsoft 用於描述軟體更新的詞彙 。