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

Wersje SQL Server

Termin Definicja
Wersje SQL Server

Kolejne wersje SQL Server wprowadzają zmiany w optymalizatorze, składni T-SQL i mechanizmach wysokiej dostępności.

Jak rozumieć numerację wydań SQL Server

SQL Server jest rozwijany jako rodzina kolejnych wydań tego samego silnika relacyjnej bazy danych. W praktyce spotyka się między innymi SQL Server 2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 oraz 2022. Oprócz głównego numeru wersji istotne są także edycja produktu, poziom aktualizacji oraz zgodność bazy danych. Nazwa „SQL Server 2016” wskazuje wydanie produktu, ale nie określa jeszcze, czy zainstalowano poprawki zbiorcze ani jaki poziom zgodności ustawiono dla konkretnej bazy.

Wersja silnika i poziom zgodności bazy danych to odrębne pojęcia. Baza może działać na nowszej instalacji SQL Server z zachowanym niższym poziomem zgodności, aby ograniczyć ryzyko zmian w zachowaniu zapytań. Poziom ten ustawia się właściwością COMPATIBILITY_LEVEL, której wartości są powiązane z wydaniami, na przykład 110 dla SQL Server 2012, 120 dla SQL Server 2014, 130 dla SQL Server 2016, 140 dla SQL Server 2017, 150 dla SQL Server 2019 oraz 160 dla SQL Server 2022.

Zmiany w optymalizatorze zapytań

Kolejne wersje SQL Server modyfikują optymalizator zapytań, czyli komponent wybierający plan wykonania instrukcji. Plan może obejmować skanowanie albo wyszukiwanie po indeksie, kolejność łączenia tabel, sposób agregacji oraz wybór algorytmu łączenia, takiego jak nested loops, merge join lub hash join. Zmiana wersji silnika albo poziomu zgodności może spowodować, że identyczne zapytanie otrzyma inny plan, nawet gdy tekst instrukcji i dane nie zostały zmienione.

W SQL Server 2014 wprowadzono nowy model estymacji liczności dostępny przy odpowiednim poziomie zgodności. Estymacja liczności określa przewidywaną liczbę wierszy przekazywanych między operatorami planu i wpływa na dobór zasobochłonnego lub oszczędnego sposobu wykonania. SQL Server 2016 rozszerzył funkcje związane z optymalizacją, a SQL Server 2017 i 2019 rozwijały mechanizmy automatycznego dostrajania oraz przetwarzania zapytań. W SQL Server 2019 pojawiły się między innymi usprawnienia Intelligent Query Processing, zależne od konfiguracji i poziomu zgodności. Dlatego podczas porównywania wydajności trzeba zapisać wersję silnika, poziom zgodności, statystyki, indeksy i rzeczywisty plan wykonania.

Składnia T-SQL i funkcje zależne od wydania

T-SQL zachowuje dużą zgodność wsteczną, ale poszczególne wydania dodają nowe typy danych, funkcje i konstrukcje języka. SQL Server 2012 wprowadził między innymi funkcje okna z klauzulą OVER używaną w szerszym zakresie oraz funkcje LAG i LEAD. SQL Server 2016 dodał obsługę danych JSON, w tym funkcje JSON_VALUE, JSON_QUERY i OPENJSON. SQL Server 2017 wprowadził funkcję agregującą STRING_AGG, która pozwala łączyć wartości tekstowe z wielu wierszy.

SQL Server 2012 zawiera także funkcję TRY_CONVERT, pozwalającą zwrócić wartość NULL zamiast przerwać działanie instrukcji w razie nieudanego rzutowania, o ile żądana konwersja jest dozwolona. W SQL Server 2016 dodano między innymi STRING_SPLIT, natomiast w SQL Server 2022 dostępne są dalsze rozszerzenia funkcji językowych i mechanizmów przetwarzania zapytań. Skrypt wykorzystujący nowszą funkcję może nie uruchomić się na starszym wydaniu, dlatego przed przeniesieniem aplikacji trzeba sprawdzić dokumentację konkretnej wersji, ustawiony poziom zgodności oraz wymagane funkcje instalacji.

Aktualizacja, zgodność i rozpoznanie zainstalowanej wersji

Rozpoznanie wersji SQL Server powinno obejmować nie tylko nazwę produktu, lecz także numer kompilacji i poziom aktualizacji. Podstawową informację można odczytać zapytaniem SELECT @@VERSION;. Bardziej uporządkowane dane zwraca SERVERPROPERTY, na przykład SELECT SERVERPROPERTY('ProductVersion'), SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('Edition');. Wartości te pozwalają odróżnić główne wydanie, poziom aktualizacji oraz edycję, taką jak Enterprise, Standard, Web lub Express.

Przy migracji należy sprawdzić kompatybilność aplikacji, sterowników, procedur składowanych, widoków, wyzwalaczy i zadań utrzymaniowych. Samo odtworzenie kopii zapasowej na nowszym serwerze nie gwarantuje identycznych planów zapytań ani identycznego czasu wykonania. Po aktualizacji analizuje się błędy w logach, nieużywane lub brakujące indeksy, statystyki oraz plany rzeczywiste dla najważniejszych instrukcji. Znaczenie ma również cykl wsparcia danego wydania: starsze wersje mogą nie otrzymywać już poprawek bezpieczeństwa i zgodności, dlatego decyzję o pozostaniu przy konkretnej wersji trzeba opierać na wymaganiach aplikacji oraz oficjalnej dokumentacji Microsoft.

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