| Termin | Definicja |
|---|---|
| ALTER DATABASE SET COMPATIBILITY_LEVEL | Polecenie ALTER DATABASE SET COMPATIBILITY_LEVEL zmienia poziom zgodności bazy danych z określoną wersją silnika SQL Server. Rola poziomu zgodności w SQL Server
Poziom zgodności jest właściwością bazy danych, a nie całej instancji SQL Server. Dwie bazy działające na tej samej instancji mogą mieć różne poziomy, dlatego migracja jednej bazy nie musi automatycznie zmieniać sposobu działania pozostałych. Ustawienie nie przełącza silnika na starszą wersję i nie zmienia fizycznego formatu plików danych. Wpływa natomiast na sposób przetwarzania zapytań oraz na wybrane elementy zgodności wstecznej. Wartość poziomu a wersja silnikaDozwolona wartość musi być obsługiwana przez używaną wersję SQL Server. Przykładowo poziom 150 jest kojarzony z SQL Server 2019, poziom 160 z SQL Server 2022, a poziom 170 z SQL Server 2025. Starsze poziomy, takie jak 100, 110, 120, 130 i 140, odpowiadają wcześniejszym generacjom silnika. Dokładny zakres wartości dostępnych w danej instalacji należy sprawdzić w dokumentacji konkretnej wersji oraz w katalogu systemowym. Podanie poziomu nieobsługiwanego przez instancję powoduje odrzucenie polecenia. Nie można ustawić poziomu wyższego niż maksymalny poziom wspierany przez aktualnie uruchomiony silnik. Przy przenoszeniu bazy na nowszy SQL Server często pozostawia się dotychczasowy poziom zgodności, aby najpierw uruchomić bazę bez jednoczesnej zmiany zachowania optymalizatora. Dopiero po testach można podnieść wartość do poziomu zalecanego dla docelowej wersji. Wpływ na zapytania i plan wykonaniaZmiana poziomu zgodności może oddziaływać na optymalizator zapytań, czyli komponent wybierający plany wykonania dla instrukcji SQL. Po podniesieniu poziomu niektóre zapytania mogą otrzymać inny plan, używać innych operatorów albo zmienić kolejność wykonywania operacji. W rezultacie część obciążeń może działać szybciej, ale konkretnego efektu nie można zakładać bez pomiaru na rzeczywistych danych i obciążeniu. Poziom zgodności wpływa także na wybrane elementy składni i semantyki Transact-SQL. W nowszych poziomach mogą pojawić się nowe słowa kluczowe, zmienione reguły interpretacji zapytań lub nowe zachowania funkcji. Kod aplikacji, procedury składowane, widoki i wyzwalacze powinny zostać sprawdzone po zmianie, szczególnie gdy korzystają z niejednoznacznej składni, funkcji zależnych od wersji albo zapytań generowanych dynamicznie. Sama poprawna zmiana ustawienia nie gwarantuje, że każda instrukcja używana przez aplikację zachowa identyczny plan i wynik wydajnościowy. Bezpieczne sprawdzenie i zmiana ustawieniaBieżący poziom zgodności można odczytać z widoku katalogowego Zmianę warto przeprowadzać w kontrolowanym oknie administracyjnym, po wykonaniu kopii zapasowej i zebraniu informacji o najważniejszych zapytaniach. Po ustawieniu nowej wartości należy sprawdzić błędy aplikacji, czasy odpowiedzi, obciążenie procesora, użycie pamięci, blokady oraz plany wykonania zapytań. Jeżeli po podniesieniu poziomu wystąpi regresja wydajności, można przeanalizować zmieniony plan i zastosować mechanizmy dostosowane do używanej wersji SQL Server, zamiast pochopnie zmieniać strukturę tabel lub indeksy. Istotne jest rozróżnienie poziomu zgodności od poziomu zgodności bazy z ustawieniami całej instancji. Polecenie |