| 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 2022SQL 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ą bazyWersja 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 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 2022Przełą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 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. |