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 2008 Compatibility

Termin Definicja
SQL Server 2008 Compatibility

Poziom zgodności SQL Server 2008 zachowuje zachowanie optymalizatora z tej wersji przy pracy na nowszym silniku.

Poziom zgodności 100 w SQL Server

SQL Server 2008 Compatibility oznacza poziom zgodności bazy danych ustawiony na wartość 100, odpowiadającą zachowaniu wersji SQL Server 2008. Jest to właściwość konkretnej bazy danych, a nie całej instancji. Nowszy silnik SQL Server może uruchamiać bazę utworzoną w starszej wersji i zachowywać część wcześniejszych reguł interpretacji zapytań, aby ograniczyć ryzyko zmiany wyników lub wydajności po migracji.

Poziom zgodności nie oznacza uruchomienia pełnego silnika SQL Server 2008 wewnątrz nowszej wersji. Baza nadal korzysta z aktualnego silnika, jego mechanizmów przechowywania, zabezpieczeń i dostępnych zasobów. Ustawienie 100 wpływa przede wszystkim na sposób kompilowania zapytań, wybór planów wykonania oraz wybrane zachowania języka Transact-SQL. Nie jest to także kopia zapasowa ani format pliku, który przywraca starszy system bazodanowy.

Wpływ poziomu 100 na optymalizator zapytań

Najważniejszym zastosowaniem tego poziomu jest zachowanie wcześniejszej wersji modelu optymalizacji zapytań podczas pracy bazy na nowszym silniku. Optymalizator analizuje instrukcję SQL i wybiera plan wykonania, na przykład sposób łączenia tabel, użycie indeksu, kolejność operacji oraz metodę agregacji. Po zmianie silnika ten sam tekst zapytania może otrzymać inny plan, ponieważ nowsze wersje zawierają zmienione reguły estymacji i wyboru operatorów. Poziom zgodności 100 ogranicza część takich zmian wynikających z nowszego modelu.

Nie gwarantuje to jednak identycznego czasu wykonania ani identycznego planu w każdych warunkach. Na wynik wpływają również statystyki, dane, indeksy, konfiguracja instancji, pamięć, obciążenie oraz poprawki zastosowane do silnika. Poziom zgodności nie naprawia nieoptymalnego zapytania, brakującego indeksu ani błędnych założeń aplikacji. Służy jako mechanizm przejściowy, który pozwala oddzielić migrację silnika od kontrolowanego wdrażania zmian w optymalizacji.

Sprawdzanie i zmiana ustawienia bazy

Aktualny poziom zgodności można sprawdzić w widoku katalogowym sys.databases. Przykładowe zapytanie odczytujące nazwę bazy i ustawienie wygląda następująco:

SELECT name, compatibility_level FROM sys.databases;

Wartość 100 wskazuje zgodność z SQL Server 2008. Zmianę wykonuje się poleceniem ALTER DATABASE, wskazując nazwę właściwej bazy, na przykład ALTER DATABASE [NazwaBazy] SET COMPATIBILITY_LEVEL = 100;. Polecenie wymaga odpowiednich uprawnień i powinno być wykonane po potwierdzeniu, że używana wersja silnika dopuszcza wskazany poziom. Ustawienie zmienia się dla całej bazy, dlatego przed wdrożeniem należy uwzględnić wszystkie aplikacje i procedury korzystające z tego samego środowiska.

Migracja z SQL Server 2008 i kontrola skutków

Podczas migracji bazy z SQL Server 2008 na nowszy silnik poziom 100 może pomóc utrzymać przewidywalne zachowanie istniejących zapytań. Nie powinien jednak zastępować testów. Należy porównać wyniki zapytań, czasy wykonania i plany dla operacji najbardziej obciążających system, zwłaszcza złożonych połączeń, zapytań z sortowaniem, agregacji oraz procedur składowanych. Warto również sprawdzić komunikaty błędów i ostrzeżenia generowane przez aplikację po przełączeniu na nową instancję.

Jeżeli testy potwierdzą poprawność działania, można zaplanować podniesienie poziomu zgodności do wartości właściwej dla używanej wersji SQL Server. Takie przejście może udostępnić nowszy model optymalizatora, ale może też zmienić plany wykonania niektórych zapytań. Z tego powodu zmiana powinna być poprzedzona kopią zapasową, testem na reprezentatywnych danych i możliwością powrotu do poprzedniego ustawienia. W przypadku problemu diagnostyka powinna obejmować zarówno samą instrukcję SQL, jak i statystyki, indeksy, konfigurację bazy oraz różnice między środowiskiem źródłowym i docelowym.

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