Microsoft Build 2022: Erste öffentliche Version von SQL Server 2022 erschienen

SQL Server 2022 erlaubt ein Failover lokaler Datenbankinstanzen zu Azure SQL. Die Cloud-Datenbank wird so zum Replikat, das im Notfall die Führung übernimmt.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen

(Bild: Gorodenkoff / Shutterstock.com)

Lesezeit: 5 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Microsoft hat auf der Build-Konferenz eine erste Vorschauversion der kommenden Version 2022 seines Datenbankservers veröffentlicht. Schwerpunkt von SQL Server 2022 mit der internen Versionsnummer 16 ist laut seinen Herausgebern die verbesserte Cloud-Integration. Microsoft spricht von einer auf Azure zugeschnittenen Version (im Wortlaut konkret: "the most Azure-enabled release of SQL Server").

In SQL Server 2022 ist ein Failover von lokalen Datenbankinstanzen zu dem Cloud-basierten Azure SQL möglich (s. Abb. 1). Die neue Funktion lässt sich über den neuen Menüeintrag Azure SQL Managed Instance Link in SQL Server Management Studio (SSMS) ab Version 19.0 einrichten, das zeitgleich erschienen ist und sich parallel zu früheren Hauptversionen von SSMS installiert. Die Cloud-Datenbank wird damit zu einem Replikat, das sich nur lesen lässt, im Fehlerfall aber die führende Rolle übernimmt (s. Abb. 2). Der lokale SQL Server kann später die Hauptrolle wieder erhalten, indem man ein Backup der Cloud-Instanz im lokalen SQL Server erneut einspielt. Derzeit müssen Entwicklerinnen und Entwickler sich für diesen Replikationsdienst separat registrieren.

Replikation von SQL Server 2022 zu Azure SQL (Abb. 1)

(Bild: Microsoft)

Mit Azure Synapse Link for SQL lässt sich mit wenigen Mausklicks die Verbindung einer SQL-Server-Datenbank zum Cloud-Dienst Azure Synapse Analytics zur Datenauswertung einrichten. Nach einer initialen Replikation der bestehenden Daten, die einige Zeit in Anspruch nehmen kann, findet die Übertragung der sich fortan ändernden Daten zur Analyse in die Cloud nahezu in Echtzeit statt. Dabei soll die SQL-Server 2022-Ausgangsdatenbank kaum belastet werden.

Eine Replikation von SQL Server 2022 zu Azure SQL in SQL Server Management Studio Version 19.0 einrichten (Abb. 2)

(Bild: Microsoft)

Zur Authentifizierung unterstützt SQL Server 2022 neben den altbekannten Windows-Nutzern und SQL-Server-eigenen Nutzerkonten ("SQL-Authentifizierung") nun auch die Authentifizierung via Azure Active Directory (AAD) mit Benutzername und Kennwort oder Access Token sowie Multi-Faktor-Authentifizierung.

Beim Tabular Data Stream (TDS), dem Netzwerkprotokoll zur Kommunikation mit einem SQL Server, ist die Verschlüsselung der Daten nun verpflichtend. Die neue Version des Netzwerkprotokolls trägt die Versionsnummer 8.0. Die in SQL Server 2019 eingeführten sicheren Enklaven für Always Encrypted bieten nun auch Unterstützung für die SQL-Operatoren Join, Goup By und Order by.

Auch den Kern der SQL-Server-Datenbank hat Microsoft in Version 2022 überarbeitet. So lassen sich die SQL-Ausführungspläne nun parameterabhängig optimieren (s. Abb. 3). Der SQL Server kann dafür mehrere Ausführungspläne für eine Stored Procedure vorhalten, wenn die gelieferten Datenmengen stark vom Parameter abhängig sind. Diese "Parameter Sensitive Plan Optimization" ist automatisch aktiv, wenn die Datenbank im Kompatibilitätslevel 160 betrieben wird. Der Vorgänger SQL Server 2019 hatte hier als höchste Stufe das Level 150.

SQL Server 2022: Ausführungspläne parameterabhängig optimieren (Abb. 3)

(Bild: Microsoft)

Datenbankadministratoren oder -entwicklerinnen können in SQL Server 2022 Optimierungen für SQL-Befehle nun auch über die neue Stored Procedure sys.sp_query_store_set_hints einstellen. In diesen bisher nur in der Cloud-Variante von SQL Server verfügbaren Query Store Hints lassen viele der Optionen einstellen, die man bisher schon per OPTION an einen SQL-Befehl anhängen kann. Die neue Stored Procedure hilft in Szenarien, in denen Datenbankadministratoren den SQL-Befehl nicht beeinflussen können, weil er aus einer Anwendung kommt, deren Quellcode man nicht besitzt oder ändern kann. Damit sucht man erst die Query-ID einer Abfrage, um dann eine Optimierung für nachfolgende Ausführungen festzulegen:

/*
    Now let's find the query_id associated with this query.
*/
SELECT query_sql_text, q.query_id
FROM sys.query_store_query_text qt 
INNER JOIN sys.query_store_query q ON 
    qt.query_text_id = q.query_text_id 
WHERE query_sql_text like N'%ORDER BY ListingPrice DESC%' and query_sql_text not like N'%query_store%';
GO

/*
     We can set the hint associated with the query_id returned in the previous result set, as below.
     Note, we can designate one or more query hints
*/
EXEC sp_query_store_set_hints @query_id=5, @value = N'OPTION(RECOMPILE)';
GO

Für die Arbeit mit JSON-Daten bietet Transact-SQL in Microsoft SQL Server 2022 einige neue Funktionen an. ISJSON() prüft, ob eine Zeichenkette gültige JSON-Daten enthält. Mit JSON_PATH_EXISTS() prüft der Datenbankentwickler, ob es in einer Zeichenkette einen bestimmten JSON-Pfad gibt, wie beispielsweise

DECLARE @jsonInfo NVARCHAR(MAX)
SET @jsonInfo=N'{"info":{"address":[{"town":"Essen"},{"town":"Hannover"}]}}';
SELECT JSON_PATH_EXISTS(@jsonInfo,'$.info.address'); -- 1

Mit der Funktion JSON_OBJECT() lassen sich JSON-Datenstrukturen erzeugen. Der folgende Code-Schnipsel

SELECT JSON_OBJECT('name':'Holger Schwichtenberg', 'alter':49)

liefert die Zeichenkette {"name":"Holger Schwichtenberg","alter":49}. Analog dazu lässt sich mit JSON_ARRAY() ein JSON-Array erzeugen: SELECT JSON_ARRAY('Essen', 45127, 'Hannover', 30625), das folgende Ausgabe liefert:

["Essen",45127,"Hannover",30625]

Weitere neue T-SQL-Funktionen sind GREATEST() und LEAST(), die den größten beziehungsweise kleinsten Wert aus einer Menge liefern. STRING_SPLIT() spaltet eine Zeichenkette in Teile auf und liefert sie als Ergebnistabelle.

SQL Server 2022 bietet zudem eine Funktion mit dem Namen Ledger (deutsch: Hauptbuch), mit der die Datenintegrität einer Tabelle nachvollziehbar wird. Wie bei einer Blockchain erhält dabei jede Transaktion einen kryptografischen Hash. Datenbankadministratorinnen können damit gegenüber Auditoren auch nachweisen, dass Werte unverändert sind. Zudem erlaubt Ledger das Zurücksetzen auf einen geprüften Stand. Die Funktion war zuvor nur in der Azure SQL verfügbar.

Weitere Informationen zu SQL Server 2022 lassen sich dem Blogeintrag bei Microsoft entnehmen sowie in der Dokumentation finden.

Die Vorschauversion ist für 180 Tage kostenfrei erhältlich. In der Azure-Cloud lässt sich die Developer Edition von SQL Server 2022 als virtuelle Maschine nutzen. Microsoft bezeichnet die Version als Community Technology Preview (CTP) 2. Die Preview 1 gab es ab November 2021 nur für einen ausgewählten Benutzerkreis im Early Adopter Program (EAP).

(sih)