KB4023419-修正:與 SQL Server 2008 R2 進行比較,且在 SQL Server 2014 或更新版本中,列目標在 SQL Server 或更新版本中可能會執行較慢的查詢。

在任何裝置上使用 Microsoft 365

升級至 Microsoft 365 可隨時隨地使用最新的功能和更新。

立即升級

徵狀

當您在 Microsoft SQL Server 2014 或2016中查詢檢視時,如果您將它與 SQL Server 2008 R2 中的執行進行比較,可能需要花很長的時間才能完成。 

當您執行使用 UNION ALL 和 row 目標(例如 TOP N 子句、FAST N 或 EXISTS 謂語)的查詢時,您可能會發現,如果您將它與 SQL Server 2008 R2 進行比較,則在 SQL Server 2014 或更新版本中查詢的執行速度會變慢。

原因

在 SQL Server 2008 R2 中,當有資料列的情況下,查詢最佳化工具會變更 [UNION ALL] 底下的不同部分順序,讓最便宜的部分排在最前面。 這可讓查詢在較便宜的部分產生所需的列數,而不需繼續執行更昂貴的部分,以提前完成執行。 此類重新排序不會發生在 SQL Server 的後續版本中。

解決方案

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

       SQL Server 2016 RTM 的累積更新7

       SQL Server 2016 SP1 的累積更新4

       SQL Server 2014 SP2 累積更新6

注意:  必須針對此問題啟用 [查詢 Optimiser]。 

如需有關查詢優化程式和追蹤旗標的詳細資訊,請參閱下列連結:

SQL Server 查詢優化程式修補程式的 TF 4199 服務模型

DBCC 主控台命令和追蹤旗標

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

SQL Server 2016 的最新累計更新

SQL Server 2014 的最新累計更新

狀態

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

參考

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

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×