使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

徵狀

當您在 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 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×