Sql-Server

升級 SQL Server 2008 與 SQL Server 2014 或兼容性級別 100 與 110 時應考慮哪一個

  • March 13, 2016

我需要升級SQL Server 2008SQL Server 2014. SQL Server 2008 目前在兼容級別 100 上執行。我需要在今年升級到兼容級別 100 的 SQL Server 2014,並在明年年中升級到兼容級別 110。

如果我部署兼容級別為 100 的 SQL Server 2014,我能否看到 SQL Server 2014 的新功能,或者我還需要升級兼容級別才能使用SQL 2012和的新功能SQL 2014

兼容性級別是告訴 SQL Server 如何解釋 T-SQL 以及數據庫將如何執行的方式。大約 9 年前,Paul Randal寫了一個關於版本和兼容性級別之間差異的簡短比較。

簡而言之,他說兼容性版本和數據庫版本之間沒有關係。但是您可能可以訪問舊兼容版本的數據庫中的新功能,但它們可能無法按預期執行。需要注意的另一件事是,如果您在同一台伺服器上有多個數據庫,您可以將每個數據庫設置為自己的兼容級別。

SQL Server 2014 與以前發布的任何 SQL Server 版本的不同之處在於COMPATILITY_LEVEL 現在改變了查詢優化器的行為方式

Microsoft 在 SQL Server 2014 中引入了一個全新的 Cardinality Estimator,這個新的 Cardinality Estimator 非常有趣。在大多數情況下,客戶將看到使用 SQL Server 2014 中新的基數估計器的好處。(但在某些情況下,使用新的基數估計器會對查詢性能產生負面影響)

為了使您的數據庫查詢受益於新的基數估計器,您的數據庫的 COMPATIBILITY_LEVEL 必須為120

任何低於 120 的值都將導致您的查詢使用舊的 Cardinality Estimator,並且您的查詢計劃將無法利用新的 Cardinality Estimator。

引用自:https://dba.stackexchange.com/questions/132079