Udostępnij za pomocą


Certyfikacja zgodności

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Certyfikacja zgodności umożliwia firmom uaktualnianie i modernizację bazy danych SQL Server lokalnie, w chmurze i na urządzeniach brzegowych, eliminując ryzyko związane ze zgodnością aplikacji.

Ten sam aparat bazy danych obsługuje zarówno program SQL Server, jak i usługę Azure SQL Database (w tym usługę Azure SQL Managed Instance). Ten udostępniony aparat bazy danych oznacza, że baza danych użytkownika może być bezproblemowo przenoszona między lokalnym programem SQL Server i usługą Azure SQL Database, podczas gdy kod aplikacji wykonywany w bazie danych jako Transact-SQL nadal działa tak, jak w systemie źródłowym.

Dla każdej nowej wersji programu SQL Server domyślny poziom zgodności jest ustawiony na wersję aparatu bazy danych. Jednak poziom zgodności poprzednich wersji jest zachowywany w celu zapewnienia ciągłej zgodności istniejących aplikacji. Ta macierz zgodności jest widoczna tutaj. W związku z tym aplikacja certyfikowana do pracy z daną wersją programu SQL Server została w rzeczywistości certyfikowana do pracy na domyślnym poziomie zgodności tej wersji.

Na przykład poziom zgodności bazy danych 130 był domyślny w programie SQL Server 2016 (13.x). Ponieważ poziomy zgodności wymuszają określone Transact-SQL zachowania funkcjonalne i optymalizacji zapytań, baza danych certyfikowana do pracy w programie SQL Server 2016 (13.x) została niejawnie certyfikowana na poziomie zgodności bazy danych 130. Ta baza danych może działać as-is w nowszej wersji programu SQL Server (na przykład SQL Server 2019 (15.x)) i usługi Azure SQL Database, o ile poziom zgodności bazy danych jest przechowywany na poziomie 130.

Jest to podstawowa zasada dla modelu ciągłej integracji usługi Microsoft Azure SQL Database. Aparat bazy danych jest stale ulepszany i uaktualniany na platformie Azure, ale ponieważ istniejące bazy danych zachowują bieżący poziom zgodności, nadal działają zgodnie z założeniami nawet po uaktualnieniu do bazowego aparatu bazy danych.

W ten sposób programy SharePoint Server 2016 i SharePoint Server 2019 są certyfikowane w usługach SQL Server i Azure SQL Managed Instance. Można wdrożyć dowolny aparat bazy danych programu SQL Server, który używa obsługiwanych poziomów zgodności bazy danych dla tych wersji programu SharePoint Server. Aby uzyskać więcej informacji, zobacz Wymagania sprzętowe i programowe dotyczące programu SharePoint Server 2016oraz wymagania dotyczące sprzętu i oprogramowania dla programu SharePoint Server 2019.

Zarządzanie ryzykiem uaktualniania przy użyciu certyfikacji zgodności

Używanie certyfikacji zgodności to cenne podejście do modernizacji bazy danych. Gdy deweloperzy certyfikują na podstawie poziomu zgodności, ustalasz wymagania techniczne dla aplikacji, aby była obsługiwana na SQL Server i Azure SQL Database, ale oddzielasz cykl życia aplikacji od cyklu życia platformy bazy danych. Dzięki temu firmy mogą uaktualniać aparat bazy danych programu SQL Server zgodnie z zasadami cyklu życia i potrzebami, korzystając z nowych ulepszeń skalowalności i wydajności, które nie są zależne od kodu, i aplikacje zachowują swoją funkcjonalność za pośrednictwem uaktualnień.

Głównymi czynnikami ryzyka dla każdego uaktualnienia są możliwość negatywnego wpływu na funkcjonalność i problemy z wydajnością. Certyfikacja zgodności zapewnia spokój w zarządzaniu ryzykiem związanym z aktualizacjami:

  • W odniesieniu do zachowania Transact-SQL każda zmiana oznacza, że aplikacja musi zostać ponownie certyfikowana w celu zapewnienia poprawności. Jednak ustawienie poziomu zgodności bazy danych zapewnia zgodność z poprzednimi wersjami programu SQL Server tylko dla określonej bazy danych, a nie dla całego serwera. Utrzymanie poziomu zgodności bazy danych as-is gwarantuje, że istniejące zapytania aplikacji będą nadal wyświetlać takie samo zachowanie przed uaktualnieniem aparatu bazy danych i po nim. Aby uzyskać więcej informacji na temat zachowania Transact-SQL i poziomów zgodności, zobacz Używanie poziomów zgodności na potrzeby zgodności z poprzednimi wersjami.

  • W odniesieniu do wydajności, ponieważ ulepszenia optymalizatora zapytań są wprowadzane z każdą wersją, można oczekiwać, że napotkasz różnice w planie zapytań między różnymi wersjami aparatu bazy danych. Różnice w planie zapytań w zakresie uaktualnienia zwykle przekładają się na ryzyko, gdy istnieje możliwość, że niektóre zmiany mogą być szkodliwe dla danego zapytania lub obciążenia. Z kolei to ryzyko jest zwykle związane z koniecznością ponownego certyfikacji aplikacji, co może opóźnić uaktualnianie i stanowić wyzwania związane z cyklem życia i pomocą techniczną.

    Ograniczenie ryzyka uaktualniania polega na tym, że ulepszenia optymalizatora zapytań są ograniczane do domyślnego poziomu zgodności nowej wersji (innymi słowy, najwyższego poziomu zgodności dostępnego dla każdej nowej wersji). Certyfikacja zgodności obejmuje ochronę kształtu planu zapytania: pojęcie, że utrzymywanie poziomu zgodności bazy danych as-is, natychmiast po uaktualnieniu aparatu bazy danych, przekłada się na użycie tego samego modelu optymalizacji zapytań w nowej wersji, jak przed uaktualnieniem, a kształt planu zapytania nie powinien ulec zmianie.

    Aby uzyskać więcej informacji, zobacz sekcję Dlaczego kształt planu zapytania? w tym artykule.

Aby uzyskać więcej informacji na temat poziomów zgodności, zobacz Używanie poziomów zgodności na potrzeby zgodności z poprzednimi wersjami.

W przypadku istniejącej aplikacji, która została już certyfikowana dla danego poziomu zgodności, uaktualnij aparat bazy danych programu SQL Server i zachowaj poprzedni poziom zgodności bazy danych. W tym scenariuszu nie trzeba ponownie certyfikować aplikacji. Aby uzyskać więcej informacji, zobacz Poziomy zgodności oraz uaktualnienia silnika bazy danych w późniejszej części tego artykułu.

W przypadku nowych prac programistycznych lub gdy istniejąca aplikacja wymaga użycia nowych funkcji, takich jak inteligentne przetwarzanie zapytań, i niektórych nowych transact-SQL, zaplanuj uaktualnienie poziomu zgodności bazy danych do najnowszej dostępnej w programie SQL Server i ponownie zacertyfikowaj aplikację, aby pracować z tym poziomem zgodności. Aby uzyskać więcej informacji na temat uaktualniania poziomu zgodności bazy danych, zobacz Best Practices for upgrade Database Compatibility Level (Najlepsze rozwiązania dotyczące uaktualniania poziomu zgodności bazy danych).

Dlaczego struktura planu zapytania?

Kształt planu zapytania odnosi się do wizualnej reprezentacji różnych operatorów tworzących plan zapytania. Obejmuje to operatory, takie jak wyszukiwanie, skanowanie, sprzężenia i sortowanie, a także połączenia między nimi, które wskazują przepływ danych i kolejność operacji, które należy wykonać, aby wygenerować zamierzony zestaw wyników. Kształt planu zapytania jest określany przez optymalizator zapytań.

Aby zapewnić przewidywalność wydajności zapytań podczas uaktualniania, jednym z podstawowych celów jest zapewnienie użycia tego samego kształtu planu zapytania. Można to osiągnąć, nie zmieniając poziomu zgodności bazy danych bezpośrednio po uaktualnieniu, mimo że podstawowy aparat bazy danych ma różne wersje. Jeśli nic innego nie zmieniło się w ekosystemie wykonywania zapytań, takich jak znaczące zmiany w dostępnych zasobach lub dystrybucja danych w danych bazowych, wydajność zapytania powinna pozostać niezmieniona.

Jednak zachowanie kształtu planu zapytania nie jest jedynym czynnikiem, który może mieć wpływ na wydajność po uaktualnieniu. Jeśli przeniesiesz bazę danych do nowszego aparatu bazy danych, a także wprowadzisz zmiany środowiskowe, możesz wprowadzić czynniki, które mają natychmiastowy wpływ na wydajność zapytania, nawet jeśli plan zapytania zachowuje ten sam kształt w różnych wersjach. Te zmiany środowiskowe mogą obejmować nowy silnik bazy danych, który ma dostęp do większej lub mniejszej ilości pamięci i zasobów procesora, zmiany opcji konfiguracji serwera lub bazy danych albo zmiany w dystrybucji danych, które mają wpływ na sposób tworzenia planu zapytania. Dlatego ważne jest, aby zrozumieć, że utrzymanie poziomu zgodności bazy danych chroni przed zmianami w kształcie planu zapytania, ale nie zapewnia ochrony przed innymi aspektami środowiskowymi, które mają wpływ na wydajność zapytań, z których niektóre są zmianami inicjowane przez użytkownika.

Aby uzyskać więcej informacji, zobacz przewodnik po architekturze przetwarzania zapytań .

Korzyści z certyfikacji zgodności

Istnieje kilka natychmiastowych korzyści związanych z certyfikacją bazy danych jako podejście oparte na zgodności, a nie podejście z ustaloną wersją:

  • Oddzielenie certyfikacji aplikacji z platformy. Z uwagi na wspólny silnik bazy danych, dla aplikacji, które jedynie muszą wykonywać zapytania Transact-SQL, nie ma potrzeby utrzymywania oddzielnych procesów certyfikacji dla platformy Azure i środowiska lokalnego.

  • Zmniejszenie ryzyka uaktualniania , ponieważ podczas modernizacji platformy bazy danych cykle uaktualniania warstwy aplikacji i platformy bazy danych mogą być oddzielone w celu zmniejszenia zakłóceń i ulepszonego zarządzania zmianami.

  • Uaktualnij bez zmian w kodzie. Uaktualnienie do nowej wersji programu SQL Server lub usługi Azure SQL Database można wykonać bez zmian w kodzie, zachowując ten sam poziom zgodności co system źródłowy i nie trzeba natychmiast ponownie certyfikować do takiego czasu, gdy aplikacja musi korzystać z ulepszeń, które są dostępne tylko na wyższym poziomie zgodności bazy danych.

  • Zwiększanie możliwości zarządzania i skalowalności bez konieczności wprowadzania zmian w aplikacji przy użyciu ulepszeń, które nie są kontrolowane przez poziom zgodności bazy danych. W programie SQL Server są to na przykład:

Nowe bazy danych są nadal ustawione na domyślny poziom zgodności wersji silnika bazy danych. Jednak gdy baza danych zostanie przywrócona lub dołączona z dowolnej wcześniejszej wersji programu SQL Server do nowej wersji programu SQL Server lub usługi Azure SQL Database, baza danych zachowuje istniejący poziom zgodności.

Weryfikowanie obsługiwanego poziomu zgodności

Przed przeniesieniem bazy danych do nowej wersji programu SQL Server lub usługi Azure SQL Database sprawdź, czy poziom zgodności bazy danych jest nadal obsługiwany. Macierz wsparcia poziomu zgodności bazy danych można znaleźć w argumentach ALTER DATABASE dotyczących poziomu zgodności.

Uaktualnienie bazy danych z poziomem zgodności niższym niż dozwolony poziom (na przykład 90, który był domyślnym ustawieniem w programie SQL Server 2005 (9.x)), ustawia bazę danych na najniższy dozwolony poziom zgodności (100).

Aby określić bieżący poziom zgodności, wykonaj zapytanie względem kolumny compatibility_level w sys.databases.

Poziomy zgodności i uaktualnienia aparatu bazy danych

Aby uaktualnić silnik bazy danych do najnowszej wersji, zachowując poziom zgodności bazy danych, który istniał przed uaktualnieniem, oraz stan jej obsługi, należy przeprowadzić statyczną weryfikację obszaru funkcjonalnego kodu aplikacji w bazie danych (obiekty programowe, takie jak procedury składowane, funkcje, wyzwalacze i inne) oraz w aplikacji (przy użyciu śladu obciążenia, który przechwytuje dynamiczny kod generowany przez aplikację).

Można to łatwo zrobić przy użyciu składnika migracji programu SQL Server w programie SQL Server Management Studio. Brak błędów w danych wyjściowych raportu, o braku lub niezgodnych funkcjach, chroni aplikację przed wszelkimi regresjami funkcjonalnymi w nowej wersji docelowej. Jeśli wymagane są zmiany w celu zapewnienia, że baza danych będzie działać w nowej wersji, narzędzie pozwala określić, gdzie są potrzebne zmiany i jakie obejścia są dostępne.

Ta walidacja funkcjonalna jest szczególnie ważna w przypadku przenoszenia bazy danych ze starszej wersji (na przykład SQL Server 2008 R2 (10.50.x) lub SQL Server 2012 (11.x)) do nowej wersji SQL Server lub Azure SQL Database, ponieważ kod aplikacji może korzystać z przestarzałych elementów Transact-SQL, które nie są chronione przez poziom zgodności bazy danych. Jednak podczas przechodzenia z nowszej wersji (takiej jak SQL Server 2016 (13.x)) do SQL Server 2022 (16.x) lub usługi Azure SQL Database, nie trzeba się martwić o wycofany Transact-SQL. Aby uzyskać więcej informacji na temat nieobsługiwanego języka Transact-SQL, zobacz Używanie poziomu zgodności w celu zapewnienia zgodności z poprzednimi wersjami.

Uwaga / Notatka

Składnik migracji programu SQL Server obsługuje poziom zgodności bazy danych 100 lub nowszy. Program SQL Server 2005 (9.x) jako wersja źródłowa jest wykluczony.

Zalecamy przeprowadzenie minimalnych testów w celu zweryfikowania powodzenia uaktualnienia przy zachowaniu poprzedniego poziomu zgodności bazy danych. Należy określić, co oznacza minimalne testowanie dla własnej aplikacji i scenariusza.

Ochrona planu zapytania

Firma Microsoft zapewnia ochronę kształtu planu zapytań w przypadku:

  • Nowa wersja programu SQL Server (docelowa) działa na sprzęcie porównywalnym ze sprzętem, na którym była uruchomiona poprzednia wersja programu SQL Server (źródło).

  • Ten sam obsługiwany poziom zgodności bazy danych jest używany zarówno w docelowym programie SQL Server, jak i źródłowym programie SQL Server.

  • Ta sama baza danych i obciążenie są używane zarówno w docelowym programie SQL Server, jak i źródłowym programie SQL Server.

Wszystkie regresje kształtu planu zapytania (w porównaniu ze źródłowym programem SQL Server), które występują w tych warunkach, zostaną rozwiązane. W tym przypadku skontaktuj się z pomocą techniczną firmy Microsoft.