Applies ToSQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

徵狀

假設您執行涉及聯結或匯總的查詢 在單一欄和多個欄所覆蓋的資料行上 [統計資料] (此欄位不是前導欄)。 如果您使用的是 預設基數估價器(CE)在 SQL Server 2016 中,可能低估了 number 不同的資料列。 這會產生子最佳的查詢執行方案(例如:低估計值可能會造成雜湊運算子的記憶體不足,這會造成查詢溢出到 tempdb)。

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

解決方案

此問題已在下列 SQL Server 累積更新中修正:

注意: 若要讓此修正程式生效,您必須使用追蹤旗標(TF)4199或相對應的資料庫範圍設定或查詢提示選項來啟用 Query 優化器修復程式。

關於 SQL Server 的累積更新:

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

因應措施

您可以新增下列查詢提示來修正此問題:

按照 提示("FORCE_LEGACY_CARDINALITY_ESTIMATION")

參考

瞭解Microsoft 用於描述軟體更新的詞彙 。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。