Witam.
Mam pytanie dotyczące poziomu kompatybilności baz MS-SQLa.
Mam bazę założoną np. w sql 2014. Robię jej kopię i odzyskuję ją na sql 2022. Poziom kompatybilności pozostaje mi na sql 2014.
Co daje mi podwyższenie poziomu do sql 2022, czyli takiego na którym baza zostaje odzyskana?
Czy poprawi mi się wydajność zapytań, czy wręcz przeciwnie?
Czy na bazie o obniżonym poziomie kompatybilności będę mógł używać funkcji, które są dodane na nowym sql'u?
Po co w ogóle są te poziomy?
Poziomy zgodności określają zestaw dostępnych funkcjonalności. Dzięki temu, po przeniesieniu bazy na nową wersję silnika, masz kompatybilność wsteczną.
Nie musisz się martwić, że funkcjonalność z której korzystasz nagle "zniknęła", bądź do akcji wkroczył nowy "killer feature" optymalizatora i Twoje zapytania nagle działają dużo wolniej i jest tragedia na produkcji, bo "killer feature" ma błąd. Zmieniając poziomy zgodności masz kontrolę nad dynamiką zmian i możesz zaplanować przechodzenie na nowsze funkcjonalności.
Nie wiem czy MS ma jakieś zbiorcze porównanie funkcjonalność vs wersja. Jeśli nie, to pozostaje przeglądać oficjalną dokumentację pod kątem "Co nowego" w danej wersji, np. 2016: https://learn.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2016?view=sql-server-2016
Może nie bezpośrednie porównanie, ale na dole jest pokazane co się mięzy poziomami różni.
https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver16&redirectedfrom=MSDN