Kompatibilitätszertifizierung

Gilt für:yes SQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank

Mit der Kompatibilitätszertifizierung können Unternehmen eine SQL Server Datenbank lokal, in der Cloud und im Edgebereich aktualisieren und modernisieren, um Risiken der Anwendungskompatibilität zu vermeiden.

Die gleiche Datenbank-Engine unterstützt sowohl SQL Server als auch Azure SQL-Datenbank (einschließlich verwaltete Instanz). Diese freigegebene Datenbank-Engine bedeutet, dass eine Benutzerdatenbank nahtlos zwischen lokalen SQL Server und Azure SQL-Datenbank verschoben werden kann, während der Anwendungscode, der in der Datenbank als Transact-SQL ausgeführt wird, weiterhin wie im Quellsystem funktioniert.

Für jedes neue Release von SQL Server wird der Standardkompatibilitätsgrad auf die Version des Datenbank-Engine festgelegt. Der Kompatibilitätsgrad vorheriger Versionen wird jedoch beibehalten, um die Kompatibilität mit vorhandenen Anwendungen sicherzustellen. Diese Kompatibilitätsmatrix finden Sie unter Argumente. Aus diesem Grund wurde eine Anwendung, die für die Arbeit mit einer bestimmten SQL Server Version zertifiziert wurde, tatsächlich für den Standardkompatibilitätsgrad dieser Version zertifiziert.

Der Datenbank-Kompatibilitätsgrad 130 war beispielsweise der Standardwert in SQL Server 2016 (13.x). Da Kompatibilitätsgrade bestimmte Transact-SQL-Verhalten bei der Funktions- und Abfrageoptimierung erzwingen, wurde eine Datenbank, die für SQL Server 2016 (13.x) zertifiziert ist, implizit für den Datenbank-Kompatibilitätsgrad 130 zertifiziert. Diese Datenbank kann mit einer neueren Version von SQL Server (z. B. SQL Server 2019 (15.x)) und Azure SQL-Datenbank verwendet werden, solange der Datenbank-Kompatibilitätsgrad 130 beibehalten wird.

Dies ist ein grundlegendes Prinzip für Microsoft Azure SQL-Datenbank Continuous Integration-Vorgangsmodell. Die Datenbank-Engine wird in Azure kontinuierlich verbessert und aktualisiert, aber da vorhandene Datenbanken ihren aktuellen Kompatibilitätsgrad beibehalten, funktionieren sie auch nach Upgrades auf die zugrunde liegende Datenbank-Engine weiterhin wie vorgesehen.

Auf diese Weise SharePoint Server 2016 und SharePoint Server 2019 für SQL Server und Azure SQL verwaltete Instanz zertifizieren, sodass Sie alle SQL Server Datenbank-Engine bereitstellen können, die die unterstützten Datenbankkompatibilitätsgrade für verwenden können. diese SharePoint Serverversionen. Weitere Informationen finden Sie unter Hardware- und Softwareanforderungen für SharePoint Server 2016 und Hardware- und Softwareanforderungen für SharePoint Server 2019.

Steuern von Upgraderisiken mithilfe der Kompatibilitätszertifizierung

Die Kompatibilitätszertifizierung ist eine Methode, die sich gut zur Datenbankmodernisierung eignet. Durch die Zertifizierung basierend auf dem Kompatibilitätsgrad legen Entwickler die technischen Anforderungen für die Unterstützung einer Anwendung auf SQL Server und Azure SQL-Datenbank fest, entkoppeln den Anwendungslebenszyklus jedoch vom Lebenszyklus der Datenbankplattform. Auf diese Weise können Unternehmen die SQL Server Datenbank-Engine nach Bedarf durch Lebenszyklusrichtlinien aktualisieren und neue Skalierbarkeits- und Leistungsverbesserungen nutzen, die nicht codeabhängig sind, und das Verbinden von Anwendungen behalten ihren Funktionsstatus durch Upgrades bei.

Bei einem Upgrade bestehen die wesentlichen Risikofaktoren in einer eingeschränkten Funktionalität und Leistung. Mit der Kompatibilitätszertifizierung können die folgenden Upgraderisiken problemlos gesteuert werden:

  • In Bezug auf das Transact-SQL-Verhalten bedeutet jede Änderung, dass eine Anwendung aus Gründen der Richtigkeit erneut zertifiziert werden muss. Die Einstellung für den Datenbank-Kompatibilitätsgrad bietet jedoch Abwärtskompatibilität mit früheren Versionen von SQL Server nur für die angegebene Datenbank und nicht für den gesamten Server. Wenn Der Datenbank-Kompatibilitätsgrad unverändert bleibt, wird sichergestellt, dass vorhandene Anwendungsabfragen vor und nach einem Datenbank-Engine-Upgrade weiterhin das gleiche Verhalten aufweisen. Weitere Informationen zu Transact-SQL Verhalten und Kompatibilitätsgraden finden Sie unter Verwenden von Kompatibilitätsgraden für Abwärtskompatibilität.

  • In Bezug auf die Leistung kann erwartet werden, dass bei jeder Version Verbesserungen des Abfrageoptimierers auftreten, da zwischen den verschiedenen versionen Datenbank-Engine Unterschiede auftreten. Abfrageplanabweichungen, die bei einem Upgrade auftreten, führen in der Regel zu einem Risiko, wenn eine bestimmte Abfrage oder Workload durch Änderungen beeinträchtigt werden können. Dieses Risiko wiederum ist der Grund für die Notwendigkeit einer erneuten Zertifizierung von Anwendungen, die Upgrades verzögern und Lebenszyklus- und Supportprobleme verursachen kann. Verbesserungen des Abfrageoptimierers werden durch den Standardkompatibilitätsgrad eines neuen Release (d. h. der höchsten verfügbaren Kompatibilitätsstufe für jede neue Version) eingeschränkt, um die Upgraderisiken zu verringern. Die Kompatibilitätszertifizierung umfasst den Schutz der Abfrageplanform: Das Konzept, dass die Beibehaltung eines Datenbank-Kompatibilitätsgrads unmittelbar nach einem Datenbank-Engine Upgrade in der neuen Version das gleiche Abfrageoptimierungsmodell wie vor dem Upgrade verwendet, und die Form des Abfrageplans sollte sich nicht ändern. Weitere Informationen finden Sie im Abschnitt Gründe für die Form des Abfrageplans dieses Artikels.

Weitere Informationen zu Kompatibilitätsgraden finden Sie unter Verwenden von Kompatibilitätsgraden für Abwärtskompatibilität.

Wichtig

Aktualisieren Sie für eine vorhandene Anwendung, die bereits für einen bestimmten Kompatibilitätsgrad zertifiziert wurde, die SQL Server Datenbank-Engine, und behalten Sie den vorherigen Datenbank-Kompatibilitätsgrad bei. In diesem Szenario ist ein erneutes Zertifizieren der Anwendungen nicht erforderlich. Weitere Informationen finden Sie weiter unten in diesem Artikel unter Kompatibilitätsgrade und Upgrades der Datenbank-Engine.

Wenn eine vorhandene Anwendung neue Features wie die intelligente Abfrageverarbeitung sowie einige neue Transact-SQL verwenden muss, planen Sie für neue Entwicklungsarbeit oder für eine vorhandene Anwendung ein Upgrade des Datenbank-Kompatibilitätsgrads auf den neuesten in SQL Server verfügbaren Grad, und zertifizieren Sie Ihre Anwendung erneut, um mit diesem Kompatibilitätsgrad zu arbeiten. Ausführlichere Informationen zu einem Upgrade des Datenbank-Kompatibilitätsgrads finden Sie unter Bewährte Methoden zum Aktualisieren des Datenbank-Kompatibilitätsgrads.

Gründe für die Form des Abfrageplans

Die Abfrageplanform bezieht sich auf die visuelle Darstellung der verschiedenen Operatoren, die einen Abfrageplan bilden. Dies schließt Operatoren wie Suchvorgänge, Scans, Joins und Sortierungen sowie die Verbindungen zwischen diesen ein, die den Datenfluss und die Reihenfolge der Vorgänge angeben, die ausgeführt werden müssen, um das gewünschte Resultset zu erzeugen. Die Abfrageplanform wird durch den Abfrageoptimierer bestimmt.

Um die Abfrageleistung während eines Upgrades vorhersagbar zu halten, besteht eines der grundlegenden Ziele darin sicherzustellen, dass dieselbe Abfrageplanform verwendet wird. Dies kann erreicht werden, indem der Datenbank-Kompatibilitätsgrad nicht sofort nach einem Upgrade geändert wird, auch wenn die zugrunde liegende Datenbank-Engine unterschiedliche Versionen hat. Wenn im Ökosystem der Abfrageausführung nichts anderes geändert wird, z. B. bedeutende Änderungen an verfügbaren Ressourcen oder die Datenverteilung in den zugrundeliegenden Daten, sollte die Leistung einer Abfrage unverändert bleiben.

Das Beibehalten der Form eines Abfrageplans ist jedoch nicht der einzige Faktor, der nach einem Upgrade zu Leistungseinbußen führen kann. Wenn Sie die Datenbank in eine neuere Datenbank-Engine verschieben und auch Umgebungsänderungen vornehmen, können Sie Faktoren einführen, die sich unmittelbar auf die Leistung einer Abfrage auswirken, auch wenn der Abfrageplan versionsübergreifend die gleiche Form beibehält. Zu diesen Umgebungsänderungen können die neuen Datenbank-Engine mehr oder weniger Arbeitsspeicher- und CPU-Ressourcen, Änderungen an Server- oder Datenbankkonfigurationsoptionen oder Änderungen an der Datenverteilung gehören, die sich auf die Erstellung eines Abfrageplans auswirken. Daher ist es wichtig zu verstehen, dass das Beibehalten des Datenbank-Kompatibilitätsgrads vor Änderungen in der Form des Abfrageplans schützt, jedoch keinen Schutz vor anderen die Abfrageleistung beeinflussenden Umgebungsaspekten bietet, von denen einige vom Benutzer initiiert werden.

Weitere Informationen finden Sie im Handbuch zur Architektur der Abfrageverarbeitung.

Nutzen der Kompatibilitätszertifizierung

Die Datenbankzertifizierung auf Grundlage der Kompatibilität ist in mehrfacher Hinsicht sinnvoller als eine Zertifizierung, die auf Versionsbezeichnungen basiert:

  • Entkopplung der Anwendungszertifizierung von der Plattform: Aufgrund der freigegebenen Datenbank-Engine ist es für Anwendungen, die nur Transact-SQL Abfragen ausführen müssen, nicht erforderlich, separate Zertifizierungsprozesse für Azure und lokal zu verwalten.
  • Verringerung der Upgraderisiken: Bei der Modernisierung von Datenbankplattformen können die Upgradezyklen für die Anwendungs- und Datenbankebene getrennt werden, was zu weniger Ausfallzeiten und einem verbesserten Change Management führt.
  • Upgrade ohne Codeänderungen: Ein Upgrade auf eine neue Version von SQL Server oder Azure SQL-Datenbank kann ohne Codeänderungen durchgeführt werden, indem derselbe Kompatibilitätsgrad wie das Quellsystem eingehalten wird und keine sofortige erneute Zertifizierung erforderlich ist, bis die Anwendung Verbesserungen nutzen muss, die nur in einem höheren Datenbank-Kompatibilitätsgrad verfügbar sind.
  • Verbesserte Verwaltbarkeit und Skalierbarkeit: Eine Anpassung von Anwendungen ist nicht erforderlich. Außerdem werden Verbesserungen nicht durch den Datenbank-Kompatibilitätsgrad eingeschränkt. In SQL Server sind dies z. B.:

Neue Datenbanken werden weiterhin auf den Standardkompatibilitätsgrad der Datenbank-Engine Version festgelegt. Wenn jedoch eine Datenbank aus einer früheren Version von SQL Server einer neuen Version von SQL Server oder Azure SQL-Datenbank wiederhergestellt oder angefügt wird, behält die Datenbank ihren vorhandenen Kompatibilitätsgrad bei.

Wichtig

Überprüfen Sie vor dem Verschieben einer Datenbank in eine neue Version von SQL Server oder Azure SQL-Datenbank, ob der Datenbank-Kompatibilitätsgrad weiterhin unterstützt wird. Die Matrix für die unterstützten Datenbank-Kompatibilitätsgrade finden Sie unter Argumente.

Durch ein Upgrade einer Datenbank mit einem niedrigeren Kompatibilitätsgrad als dem zulässigen Grad (z. B. 90, der in SQL Server 2005 (9.x) der Standardwert war), wird die Datenbank auf den niedrigsten zulässigen Kompatibilitätsgrad (100) festgelegt.

Führen Sie eine Abfrage für die Spalte compatibility_level von sys.databases aus, um die aktuellen Kompatibilitätsgrad zu ermitteln.

Kompatibilitätsgrade und Upgrades der Datenbank-Engine

Um die Datenbank-Engine auf die neueste Version zu aktualisieren und dabei den Datenbank-Kompatibilitätsgrad beizubehalten, der vor dem Upgrade vorhanden war, und dessen Unterstützungsstatus, wird empfohlen, eine statische funktionale Oberflächenüberprüfung des Anwendungscodes in der Datenbank (Programmierbarkeitsobjekte wie gespeicherte Prozeduren, Funktionen, Trigger usw.) und in der Anwendung durchzuführen. (Mithilfe einer Arbeitsauslastungsablaufverfolgung, die den von der Anwendung gesendeten dynamischen Code erfasst).)

Dies ist mit dem Tool Microsoft Datenmigrations-Assistent (DMA) problemlos möglich. Gibt es in der Ausgabe von DMA keine Fehler hinsichtlich fehlender oder inkompatibler Funktionalität, ist zu erwarten, dass es keine funktionalen Rückschritte für die Anwendung in der neuen Zielversion gibt. Wenn Änderungen erforderlich sind, um sicherzustellen, dass Ihre Datenbank in der neuen Version funktioniert, können Sie mit dem DMA ermitteln, wo Änderungen erforderlich sind und welche Problemumgehungsmöglichkeiten es gibt. Weitere Informationen finden Sie unter Übersicht über den Datenmigrations-Assistenten.

Tipp

Diese funktionale Überprüfung ist besonders wichtig, wenn eine Datenbank aus einer Legacyversion (z. B. SQL Server 2008 R2 oder SQL Server 2012 (11.x)) in eine neue Version von SQL Server oder Azure SQL-Datenbank verschoben wird, da Ihr Anwendungscode möglicherweise nicht mehr ausgeführte Transact-SQL , der nicht durch den Datenbank-Kompatibilitätsgrad geschützt ist. Wenn Sie jedoch von einer neueren Version (z. B. SQL Server 2016 (13.x)) zu SQL Server 2019 (15.x) oder Azure SQL-Datenbank wechseln, gibt es keine nicht mehr behandelten Transact-SQL, um die Sie sich kümmern müssen. Weitere Informationen zu nicht mehr verwendeten Transact-SQL finden Sie unter Verwenden des Kompatibilitätsgrads für Abwärtskompatibilität.

Hinweis

DMA unterstützt Datenbank-Kompatibilitätsgrad 100 und höher. SQL Server 2005 (9.x) als Quellversion ausgeschlossen.

Wichtig

Microsoft empfiehlt, dass einige minimale Tests ausgeführt werden, um den Erfolg eines Upgrades zu überprüfen, wenn der frühere Datenbank-Kompatibilitätsgrad beibehalten wird. Sie sollten bestimmen, was „minimale Tests“ im Zusammenhang Ihrer Anwendung und Ihres Szenarios bedeutet.

Wichtig

Microsoft bietet Schutz für eine Abfrageplanform, wenn Folgendes zutrifft:

  • Die neue SQL Server Version (Zielversion) wird auf Hardware ausgeführt, die mit der Hardware vergleichbar ist, auf der die vorherige SQL Server Version (Quelle) ausgeführt wurde.
  • Der gleiche unterstützte Datenbank-Kompatibilitätsgrad wird sowohl auf der Ziel- SQL Server als auch auf der Quell-SQL Server verwendet.
  • Die gleiche Datenbank und Arbeitsauslastung wird sowohl auf der Ziel- SQL Server als auch auf der Quell-SQL Server verwendet.

Jede Regression der Abfrageplanform (im Vergleich zur Quell-SQL Server), die unter den oben genannten Bedingungen auftritt, wird behandelt. Wenden Sie sich an den Microsoft-Kundensupport, wenn dies der Fall ist.

Weitere Informationen

ALTER DATABASE-KOMPATIBILITÄTSGRAD
Anzeigen oder Ändern des Kompatibilitätsgrads einer Datenbank
Bewährte Methoden zum Aktualisieren des Datenbank-Kompatibilitätsgrads