Sql-Server
遷移後升級數據庫兼容性級別是否會導致任何破壞性結果?
我正在將 sql server 從 2016 遷移到 2019。我了解,預設情況下,遷移後數據庫將保留現有的兼容性級別。升級兼容級別可啟用新功能。
Microsoft 建議採用以下方法來升級兼容性級別以避免回歸:
兼容性級別升級是否會導致任何破壞結果?還是查詢回歸(我認為這意味著由於執行計劃選擇錯誤導致查詢比平時花費更多時間)是兼容性升級的唯一負面影響?
查詢性能回歸是主要關注點,也是微軟建議在更改兼容性級別之前先啟用查詢儲存的原因。這允許查詢儲存在您更改兼容性級別之前建構您的主要查詢的性能基線,以便能夠在您更改它之後進行比較,以便它可以為您提供有關哪些查詢回歸(變慢)的資訊和指標。正如文件所提到的,您可以使用查詢儲存來強制“最後一個已知的好計劃”作為短期修復,同時分析如何通過更好的長期修復來優化該查詢。
當然,總是有可能因為更改兼容性級別而遇到錯誤,但我認為這比在實際實例版本升級中遇到錯誤的可能性要小。例如,當我最近從 2016 升級到 2019 RTM 時,我遇到了一個帶有所有權連結的錯誤,該錯誤是在連結伺服器上呼叫的函式。通過在當時安裝最新的 CU(目前是CU 15 )解決了這個問題。因此,將 2019 實例修補到最新的 CU 以最大程度地減少任何錯誤非常重要。
這也是為什麼建議首先在您的開發伺服器中進行版本升級,等待幾週或幾個月來分析結果,然後在充分測試後在生產中應用相同的升級。
我還想補充其他答复,因為您要從 2016 年到 2019 年,自 2016 年以來就有
- 數據庫兼容性級別僅涵蓋與性能相關的更改。即,沒有功能變化。看到這個和這個。
- 2016 年和 2017 年之間的重大變化非常小,2017 年和 2019 年之間沒有重大變化。
- 自 2016年以來唯一停止使用的功能是三個與性能設置相關的數據庫範圍配置。
當然,以上只是記錄的內容。