| Termin | Definicja |
|---|---|
| Uaktualnianie modelu zgodności | Uaktualnianie modelu zgodności zmienia zachowanie optymalizatora bazy na charakterystyczne dla nowszej wersji silnika. Na czym polega zmiana modelu zgodności w SQL ServerUaktualnianie modelu zgodności w SQL Server polega na zmianie właściwości bazy danych określanej jako Przykładowe wartości odpowiadają wersjom SQL Server: poziom 150 jest związany z SQL Server 2019, 160 z SQL Server 2022, a 170 z SQL Server 2025. Dostępna wartość zależy od wersji silnika. Baza przywrócona lub dołączona do nowszej instancji zwykle zachowuje dotychczasowy poziom zgodności, jeżeli jest on nadal obsługiwany. Samo przeniesienie bazy na nowszą wersję SQL Server nie oznacza więc automatycznego włączenia wszystkich zmian optymalizatora. Wpływ poziomu zgodności na optymalizator zapytańNajważniejszym skutkiem podniesienia poziomu zgodności jest możliwość użycia nowszych reguł optymalizatora zapytań. SQL Server analizuje instrukcję, szacuje między innymi liczbę wierszy spełniających warunki i wybiera plan wykonania, na przykład kolejność łączenia tabel, rodzaj operatora dostępu do indeksu albo sposób agregowania danych. Zmiana modelu zgodności może zmienić te decyzje, nawet jeżeli tekst zapytania i struktura tabel pozostają bez zmian. Od poziomu 130 poprawki i funkcje wpływające na plany zapytań są zasadniczo wiązane z nowszym poziomem zgodności, aby ograniczyć ryzyko niekontrolowanych zmian wydajności podczas aktualizacji silnika. Dotyczy to również zmian w estymatorze kardynalności oraz wybranych poprawek optymalizatora. W efekcie podniesienie poziomu może przyspieszyć część zapytań, ale w określonych obciążeniach może także spowodować regresję, jeżeli nowy plan okaże się mniej korzystny dla konkretnego rozkładu danych. Sprawdzenie ustawienia przed aktualizacjąBieżący poziom zgodności można odczytać z widoku systemowego
Wartość należy interpretować razem z wersją silnika, którą można sprawdzić za pomocą Zmianę wykonuje się poleceniem Kontrola planów po podniesieniu poziomuUaktualnienie modelu zgodności powinno być traktowane jako zmiana wymagająca testu, a nie jako czysto administracyjne przełączenie. Należy porównać najważniejsze zapytania przed zmianą i po niej, zwracając uwagę na czas wykonania, liczbę odczytów logicznych, zużycie procesora, oczekiwania oraz wybrany plan wykonania. Szczególne znaczenie mają zapytania raportowe, procedury składowane z wieloma łączeniami, operacje korzystające z indeksów oraz instrukcje wykonywane bardzo często. Do obserwacji zmian można wykorzystać Query Store, który przechowuje informacje o zapytaniach, planach i statystykach ich wykonania. Jeżeli po podniesieniu poziomu pojawi się regresja, trzeba ustalić, czy wynika ona ze zmiany planu, estymacji liczby wierszy, statystyk lub danych wejściowych. Obniżenie poziomu zgodności jest możliwą procedurą wycofania ustawienia, ale nie zastępuje analizy przyczyny. Dopiero po sprawdzeniu planów, obciążenia i poprawności wyników można ocenić, czy nowy model zgodności działa prawidłowo dla konkretnej bazy. |