Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SQL Server 2022 Compatibility

Termin Definicja
SQL Server 2022 Compatibility

Poziom zgodności SQL Server 2022 to najnowszy dostępny obecnie wariant, uwzględniający bieżące funkcje silnika.

Poziom 160 w SQL Server 2022

SQL Server 2022 Compatibility oznacza poziom zgodności bazy danych ustawiony dla silnika SQL Server 2022. W dokumentacji Microsoft odpowiada mu wartość 160. Jest to właściwość konkretnej bazy danych, a nie całej instalacji serwera. Jeden wystąpienie SQL Server może obsługiwać kilka baz z różnymi poziomami zgodności, dlatego migracja do SQL Server 2022 nie musi automatycznie oznaczać natychmiastowego przełączenia każdej bazy na poziom 160.

Poziom zgodności określa między innymi sposób interpretowania części składni języka Transact-SQL, zachowanie wybranych funkcji oraz reguły stosowane przez optymalizator zapytań. Nie jest jednak osobną wersją pliku bazy danych ani zamiennikiem wersji silnika. Baza może działać na SQL Server 2022 z niższym poziomem zgodności, aby zachować większą zgodność z wcześniejszą aplikacją. Ustawienie 160 pozwala korzystać z mechanizmów udostępnianych przez SQL Server 2022, ale może również ujawnić różnice w planach wykonania zapytań.

Różnica między wersją silnika a zgodnością bazy

Wersja silnika SQL Server i poziom zgodności są dwiema odrębnymi informacjami. SQL Server 2022 należy do generacji oznaczanej numerem głównym 16, natomiast poziom zgodności 160 opisuje sposób, w jaki dana baza korzysta z funkcji i zachowania tej generacji. Samo ustawienie wartości 160 nie instaluje SQL Server 2022, nie zmienia plików programu i nie aktualizuje systemu operacyjnego. Najpierw musi istnieć działające wystąpienie SQL Server 2022, a dopiero potem można zmienić właściwość bazy.

Poziom można sprawdzić w widoku katalogowym sys.databases. Przykładowe zapytanie diagnostyczne ma postać SELECT name, compatibility_level FROM sys.databases;. Zmianę wykonuje się poleceniem ALTER DATABASE [NazwaBazy] SET COMPATIBILITY_LEVEL = 160;. Polecenie dotyczy wskazanej bazy, dlatego nazwa obiektu powinna zostać dobrana jednoznacznie. Przed zmianą należy sprawdzić wersję aplikacji korzystającej z bazy, używane zapytania, procedury składowane, widoki, funkcje oraz zależności od zachowania optymalizatora.

Obniżenie poziomu zgodności również nie cofa wersji silnika. Może zmienić sposób kompilowania zapytań i interpretowania określonych elementów języka, ale nie przywraca starszych plików wykonywalnych ani pełnego środowiska poprzedniej wersji SQL Server. Z tego powodu zgodność jest narzędziem kontroli zachowania bazy po migracji, a nie metodą odinstalowania lub emulowania wcześniejszego serwera.

Wpływ poziomu 160 na wykonywanie zapytań

Jednym z najważniejszych obszarów działania poziomu zgodności jest optymalizator zapytań. Po ustawieniu poziomu 160 SQL Server 2022 może stosować reguły optymalizacji przypisane do tej generacji. Plan wykonania może więc różnić się od planu uzyskanego przy poziomie 150 lub niższym, nawet gdy tekst zapytania, indeksy i dane pozostają bez zmian. Różnica nie musi oznaczać błędu: może prowadzić do poprawy, pogorszenia albo zmiany charakteru obciążenia, zależnie od rozkładu danych i sposobu używania zapytania.

Poziom 160 jest związany z mechanizmem Parameter Sensitive Plan Optimization, znanym jako PSP optimization. Mechanizm ten pomaga w sytuacji, gdy pojedyncze zapytanie parametryzowane daje bardzo różne wyniki dla różnych wartości parametru. Zamiast zakładać, że jeden plan będzie odpowiedni dla każdego przypadku, optymalizator może utrzymywać warianty planu dopasowane do różnych przedziałów wartości. Skuteczność takiego rozwiązania zależy od konkretnego zapytania, statystyk, indeksów i rzeczywistego rozkładu danych; sama zmiana poziomu zgodności nie gwarantuje poprawy każdego problemu wydajnościowego.

Po migracji należy porównać czas wykonania, liczbę odczytów logicznych, zużycie procesora, przydział pamięci oraz faktyczne plany wykonania dla najważniejszych zapytań. Szczególną uwagę warto zwrócić na zapytania z parametrami, złożone połączenia tabel, sortowanie, agregacje i operacje na dużych zbiorach. Jeżeli zmiana planu powoduje regresję, analizuje się statystyki, indeksy, parametryzację, ustawienia bazy oraz zebrane plany. Nie należy wyciągać wniosku o poprawności poziomu 160 wyłącznie na podstawie tego, że baza uruchomiła się bez błędu.

Bezpieczna weryfikacja zgodności SQL Server 2022

Przełączenie bazy na poziom 160 powinno być poprzedzone kopią zapasową oraz testem na środowisku odtworzonym z reprezentatywnych danych. Test powinien obejmować logowanie aplikacji, odczyt i zapis danych, procedury składowane, zadania cykliczne oraz zapytania wykonywane podczas typowego i zwiększonego obciążenia. Należy także sprawdzić komunikaty błędów dotyczące składni, niejawnych konwersji, sortowania, typów danych i różnic w wynikach. Sama zgodność składniowa nie potwierdza zgodności funkcjonalnej, ponieważ zapytanie może działać, ale zwracać dane w innej kolejności lub korzystać z innego planu.

Weryfikacja powinna rozróżniać problem aplikacji od problemu konfiguracji bazy. Do sprawdzenia należą między innymi poziom zgodności, ustawienia zakresu bazy zapisane w sys.database_scoped_configurations, stan statystyk oraz plany zapytań rejestrowane przez Query Store, jeżeli Query Store jest używany w danym środowisku. Dla każdego istotnego zapytania warto porównać wynik, plan i metryki przed oraz po zmianie. W przypadku awarii można tymczasowo wrócić do poprzedniego poziomu zgodności, ale nie zastępuje to znalezienia przyczyny regresji.

SQL Server 2022 Compatibility należy więc traktować jako ustawienie sterujące zachowaniem konkretnej bazy podczas pracy na SQL Server 2022. Poziom 160 jest właściwym punktem odniesienia dla funkcji i optymalizacji tej wersji, lecz jego zastosowanie wymaga kontroli zapytań oraz testów obciążeniowych. Dotyczy to zwłaszcza baz używanych przez systemy biznesowe, w których nawet poprawna technicznie zmiana planu może wpłynąć na czas odpowiedzi aplikacji.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę