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

Sprawdzanie poziomu zgodności

Termin Definicja
Sprawdzanie poziomu zgodności

Sprawdzanie poziomu zgodności bazy pozwala ustalić, z których nowszych funkcji silnika może ona korzystać.

Co oznacza poziom zgodności bazy danych

Poziom zgodności określa, według jakiego zestawu reguł zachowania pracuje baza danych w silniku Microsoft SQL Server. Jest to właściwość przypisana do konkretnej bazy, a nie tylko do całej instalacji serwera. Dzięki temu bazę utworzoną w starszej wersji SQL Server można po przeniesieniu na nowszy silnik pozostawić przy starszym poziomie zgodności i ograniczyć ryzyko natychmiastowej zmiany zachowania zapytań, optymalizatora oraz wybranych funkcji języka T-SQL.

Poziom zgodności nie zmienia formatu plików bazy i nie jest tym samym co wersja programu SQL Server. Nowszy silnik może obsługiwać bazę ustawioną na starszym poziomie, ale dostępność funkcji zależy jednocześnie od wersji uruchomionego serwera, ustawień bazy oraz poziomu zgodności. Z tego powodu sama informacja, że baza działa na SQL Server 2019 lub SQL Server 2022, nie wystarcza do oceny, czy może używać wszystkich funkcji dostępnych w tej wersji.

Odczyt ustawienia w Microsoft SQL Server

Poziom zgodności można odczytać z widoku katalogowego sys.databases. Zapytanie SELECT name, compatibility_level FROM sys.databases; zwraca nazwy baz oraz przypisane im wartości. Wartość jest liczbą całkowitą, a nie tekstem zawierającym numer wydania. Przykładowo poziom 160 oznacza zgodność z SQL Server 2022, 150 z SQL Server 2019, 140 z SQL Server 2017, 130 z SQL Server 2016, 120 z SQL Server 2014, a 110 z SQL Server 2012.

W praktyce warto odczytać także wersję instancji poleceniem SELECT SERVERPROPERTY('ProductVersion'), SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('Edition');. Porównanie tych danych z poziomem bazy pokazuje, czy baza działa na ustawieniu starszym od dostępnego w zainstalowanym silniku. Nie należy jednak automatycznie podnosić poziomu tylko dlatego, że serwer został zaktualizowany. Najpierw trzeba sprawdzić zapytania, procedury składowane, widoki, raporty i aplikacje korzystające z tej bazy.

Co rzeczywiście sprawdza test zgodności

Kontrola poziomu zgodności pozwala ustalić, czy baza może korzystać z zachowania wprowadzonego dla nowszego wydania SQL Server. Zmiana poziomu może wpływać między innymi na pracę optymalizatora zapytań, wybór planów wykonania, interpretację części składni oraz działanie niektórych funkcji języka T-SQL. Nie oznacza to, że każda funkcja dodana do nowej wersji stanie się dostępna po samej zmianie poziomu. Funkcje wymagające nowszej wersji silnika nadal nie będą działać na starszym serwerze.

Podniesienie poziomu powinno być poprzedzone kopią zapasową i testem na odtworzonej bazie. Należy uruchomić najczęściej wykonywane zapytania, zadania importu i eksportu oraz operacje aplikacji, a następnie porównać błędy, czas wykonania i plany zapytań. Pomocne jest również sprawdzenie dzienników SQL Server i aplikacji. Jeżeli po zmianie pojawi się regresja, administrator może tymczasowo wrócić do poprzedniego poziomu poleceniem ALTER DATABASE [NazwaBazy] SET COMPATIBILITY_LEVEL = 150;, o ile 150 było wcześniejszym ustawieniem i jest obsługiwane przez daną instancję.

Ustawienie odczytuje się z uprawnieniami pozwalającymi na dostęp do metadanych instancji, natomiast jego zmianę wykonuje się dla konkretnej bazy poleceniem ALTER DATABASE. Przed wykonaniem operacji trzeba zastąpić nazwę przykładową rzeczywistą nazwą bazy oraz dobrać poziom obsługiwany przez zainstalowaną wersję SQL Server. Błędnie dobrany poziom albo test wykonany wyłącznie na jednym zapytaniu może ukryć problemy ujawniające się dopiero w aplikacji.

Znaczenie kontroli zgodności w komputerze użytkownika

Na laptopie lub komputerze PC sprawdzanie poziomu zgodności jest potrzebne wtedy, gdy lokalna aplikacja korzysta z Microsoft SQL Server, baza została przeniesiona z innego komputera albo wykonano aktualizację silnika. Technik powinien ustalić, czy problem wynika z samego połączenia, uprawnień, sterownika, uszkodzenia bazy, czy z różnicy między poziomem zgodności a wersją używanego oprogramowania. Sam komunikat o braku obsługi funkcji nie jest dowodem uszkodzenia sprzętu ani nośnika danych.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC oraz ich podzespołów, a w ramach diagnostyki można również sprawdzić lokalne środowisko uruchamiające aplikację bazodanową. Taka weryfikacja obejmuje między innymi wersję zainstalowanego silnika, konfigurację połączenia, działanie usługi SQL Server i zgodność aplikacji z bazą. Zmianę poziomu zgodności należy wykonywać dopiero po potwierdzeniu, że kopia zapasowa jest poprawna, a używane programy zostały sprawdzone po zmianie.

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