升級 SQL Server 2008 與 SQL Server 2014 或兼容性級別 100 與 110 時應考慮哪一個
我需要升級
SQL Server 2008
到SQL 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。