當您從資料庫相容性層級 120,130 在 SQL Server 2016年,或在 Windows 上的 SQL Server 2017年升級時的效能降低

摘要

請考慮下列情況:

  • 您可以使用篩選器與使用函數,例如STIntersects在 SQL Server 2016年,或在 Windows 上的 SQL Server 2017年,以執行空間的查詢。

  • 資料庫相容性層級為 120。

  • 此查詢使用平行執行計劃。

  • 130 升級資料庫的相容性層級,並執行計劃已經從平行序列。


在這個案例中,您會遇到效能降低,如果查詢傳回大型結果集。

解析度

若要解決這個問題,請嘗試下列方法:

  • 還原您的資料庫相容性層級到 120。當您這麼做時,您不能受益於一些可在 SQL Server 2016年,或在 Windows 上的 SQL Server 2017年資料庫相容性層級 130 的功能。不過,您將仍然能夠實現許多改良,不會繫結於資料庫相容性 levelfor 範例,但的空間資料類型的查詢作業的整體效能改善。
     
    需要資料庫相容性層級 130 的 SQL Server 2016年增強功能的清單,請參閱變更資料庫相容性層級 (考慮改用 SQL)

  • 強制如果它提供較佳的效能,會將使用資料庫相容性層級 120 產生的計劃。您可以強制此計劃時使用 USE PLAN 的查詢提示來執行與資料庫相容性層級 130。如需有關如何使用提示的詳細資訊,請參閱查詢提示 (考慮改用 SQL)
     
    或者,使用查詢的存放區,找出並修正特定的計劃選擇。如需有關如何使用針對此用途的查詢儲存區的詳細資訊,請參閱Pinpoint 和修正查詢的計劃選擇回復

更多的資訊

SQL Server 資料庫相容性層級 120,130 使用不同角度來評估述詞的基數純量使用者定義函式或特定的 T SQL 函式 (例如STIntersects) 與常數進行比較位置。

雖然由資料庫相容性層級 130 成本模型中,會產生相較於層級 120 的許多工作負載的效能提升,查詢的某些 (取決於資料和使用的函式中) 的查詢效能的計劃實際上可能會降低在層級130。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×