Microsoft SQL Server 2022
Eintrag zuletzt aktualisiert am: 17.11.2022
Microsoft SQL Server 2022 ist Nachfolger von
Microsoft SQL Server 2019 und erschienen am 16.11.2022.
Interne Versionsnummer
16 (Kompatibilitätslevel: 160)
Liste der Neuerungen in Microsoft SQL Server 2022
Neue Analysefunktionen
- Azure Synapse Link für SQL
- Integration des Objektspeichers
- Datenvirtualisierung
Verbesserungen im Bereich Verfügbarkeit
- Link zu Azure SQL Managed Instance
- Eigenständige Verfügbarkeitsgruppen
- Verteilte Verfügbarkeitsgruppen
- Verbesserte Sicherungsmetadaten
Verbesserungen im Bereich Sicherheit
- Integration von Microsoft Defender für Cloud
- Microsoft Purview-Integration
- Ledger
- Authentifizierung über Azure Active Directory
- Always Encrypted mit Secure Enclaves: Unterstützung für JOIN, GROUP BY und ORDER BY und Textspalten mit UTF-8-Sortierungen
- Neue granulare Berechtigungen
- Neue integrierte Rollen auf Serverebene
- Päzise „UNMASK“-Berechtigungen für die dynamische Datenmaskierung
- Neue Unterstützung für den Import und Export von Zertifikaten im PFX-Dateiformat und privaten Schlüsseln.
- Unterstützung für TDS 8.0 und TLS 1.3
Verbesserungen im Bereich Abfragen
- Abfragespeicher auf sekundären Replikaten
- Abfragespeicherhinweise
- Feedback zur Speicherzuweisung
- Parameterabhängige Planoptimierung
- Feedback zum Grad der Parallelität
- Feedback zur Kardinalitätsschätzung
- Erzwingen des optimierten Plans
Leistungsverbesserungen in Microsoft SQL Server 2022
Verbesserte Verwaltungsfunktionen
- Integrierte Einrichtungsumgebung für die Azure-Erweiterung für SQL Server
- Azure-Erweiterung für SQL Server im SQL Server-Konfigurations-Manager
- Berechnungen des maximalen Serverarbeitsspeichers
- Verbesserungen bei der beschleunigten Datenbankwiederherstellung (ADR)
- Verbesserte Unterstützung für Momentaufnahmesicherungen
- Verkleinern von Datenbanken mit WAITAT_LOWPRIORITY
- XML-Komprimierung
- Asynchrone automatische Statistikaktualisierungsparallelität
- Sichern und Wiederherstellen auf S3-kompatiblen Objektspeichern
Verbesserungen in T-SQL
- Verbesserungen bei Alter Table
- Verbesserungen bei Create Index
- Verbesserungen bei der Transaktionsreplikation
- Verbesserungen bei Create Statistics
- SELECT … WINDOW
- IS [NOT] DISTINCT FROM
- Zeitreihenfunktionen mit DATEBUCKET() und GENERATE_SERIES()
- Erweiterte JSON-Funktionen
- Aggregatfunktionen APPROX_PERCENTILE_CONT() und APPROX_PERCENTILE_DISC()
- Neue T-SQL-Funktionen: GREATEST(), LEAST(), STRING_SPLIT(), DATETRUNC(), LTRIM(), RTRIM() und TRIM()
- Neue Funktionen für Bitmanipulation: LEFT_SHIFT(), RIGHT_SHIFT(), BIT_COUNT(), GET_BIT(), SETBIT()
Verbesserungen in
SQL Server Management Studio Version 19.0
Details
Schwerpunkt von SQL Server 2022 (interne Versionsnummer: 16) ist die verbesserte Cloud-Integration. Microsoft spricht von "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. Eingerichtet wird die neue Funktion über neuen Menüeintrag "Azure SQL Managed Instance Link" in
SQL Server Management Studio (SSMS) ab Version 19.0, das zeitgleich unter
https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms-19 erschienen ist und sich parallel zu früheren Hauptversionen von SSMS installiert. Die Cloud-
Datenbank wird damit zu einem Replikat, das nur gelesen werden kann, im Fehlerfall aber die führende Rolle übernimmt. Der lokale SQL Server kann später die Hauptrolle wieder erhalten, indem man ein Backup der Cloud-Instanz im lokalen SQL Server wieder einspielt. Derzeit muss man sich für diesen Replikationsdienst einzeln registrieren [
https://forms.office.com/pages/responsepage.aspx?id=v4j5cvGGr0GRqy180BHbR5o5Tvh3duNFm5f7UUZcVpZUOFVNRzNUSEhYQlNPQUxDRUxITVZGNE5NRC4u].
Mit Azure Synapse Link for SQL [
https://techcommunity.microsoft.com/t5/azure-synapse-analytics-blog/announcing-the-public-preview-of-azure-synapse-link-for-sql/ba-p/3372986] lässt sich mit wenigen Mausklicks eine Verbindung einer SQL Server-
Datenbank zum Cloud-Dienst Azure Synapse Analytics [
https://azure.microsoft.com/en-us/services/synapse-analytics] zur Datenauswertung einrichten. Nach einer initialen Replikation der bestehenden Daten, die einige Zeit in Anspruch nehmen kann, werden die sich fortan ändernden Daten nahezu in Echtzeit in die Cloud zur Analyse übertragen. Dabei soll die SQL Server 2022-Ausgangsdatenbank kaum belastet werden.
AAD und mehr Operatoren für die Enklaven
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) [
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/azure-ad-authentication-sql-server-overview?view=sql-server-ver16] mit Benutzername/Kennwort oder Access Token sowie Multi-Faktor-
Authentifizierung.
Beim
Tabular Data Stream (
TDS) [
https://www.dotnet-lexikon.de/TabularDataStream/lex/3411.aspx], 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 [
https://www.heise.de/ix/meldung/Angeblich-mit-Intelligenz-Microsoft-SQL-Server-2019-ist-erschienen-4578248.html] bieten nun auch Unterstützung für die SQL-Operatoren JOIN, GROUP BY und ORDER BY.
Auch den SQL Server-
Datenbankern hat Microsoft in Version 2022 verbessert. So werden die SQL-Ausführungspläne nun parameterabhängig optimiert. 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, hatten als höchsten Level 150 (
https://docs.microsoft.com/de-de/sql/t-sql/statements/alter-database-transact-sql-compatibility-level).
Ein
Datenbankadministrator oder -entwickler kann in SQL Server 2022 Optimierungen für SQL-Befehle nun auch über die neue Stored Procedure sys.sp
query_store_sethints 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 der
Datenbankadministrator den SQL-Befehl nicht beeinflussen kann, 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.queryid
FROM sys.query
store_querytext qt
INNER JOIN sys.query
storequery q ON
qt.query
text_id = q.query_textid
WHERE query
sql_text like N'%ORDER BY ListingPrice DESC%' and query_sql_text not like N'%querystore%';
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 @queryid=5, @value = N'OPTION(RECOMPILE)';
GO
Für die Arbeit mit
JSON-Daten bietet Transact-SQL in Microsoft SQL Server 2022 die neue Funktionen an. IS
JSON() prüft, ob eine Zeichenkette gültige
JSON-Daten enthält. Mit
JSONPATHEXI
STS() prüft der
Datenbankentwickler, ob es in einer Zeichenkette eine bestimmten
JSON-Pfad gibt, z.B.
DECLARE @jsonInfo NVARCHAR(MAX)
SET @jsonInfo=N'{"info":{"address":[{"town":"Essen"},{"town":"Hannover"}]}}';
SELECT
JSONPATHEXI
STS(@jsonInfo,'$.info.address'); -- 1
Mit der Funktion
JSON_OBJECT() erzeugt man
JSON-
Datenstrukturen, z.B.
SELECT
JSON_OBJECT('name':'
Dr. Holger Schwichtenberg', 'alter':49)
liefert die Zeichenkette
{"name":"
Dr. Holger Schwichtenberg","alter":49}
Analog dazu erzeugt man mit
JSON_ARRAY() ein
JSON-Array:
SELECT
JSON_ARRAY('Essen', 45127, 'Hannover', 30625)
Dies liefert:
["Essen",45127,"Hannover",30625]
Weitere neue T-SQL-Funktionen sind GREATEST() und LEAST(), die den größten bzw. kleinesten Wert aus einer Menge liefern. STRING_SPLIT() spaltet eine Zeichenkette in Teile auf und liefert diese als Ergebnistabelle.
Ledger nun auch für lokalen SQL Server
SQL Server 2022 bietet zudem jetzt eine Funktion mit Namen "Ledger" (deutsch: Hauptbuch) an, mit dem die Datenintegrität einer Tabelle nachvollziehbar wird. Wie bei einer Blockchain bekommt dafür jede
Transaktion einen kryptografischen
Hash.
Datenbankadministratoren können damit gegenüber Auditoren auch nachweisen, dass Werte unverändert sind. Zudem erlaubt Ledger das Zurücksetzen auf einen geprüften Stand. Diese Funktion war zuvor nur in der Azure SQL verfügbar.
Weitere Informationen
Weitere Informationen zu SQL Server 2022 findet man in einem Blogeintrag [
https://cloudblogs.microsoft.com/sqlserver/2022/05/24/announcing-sql-server-2022-public-preview-azure-enabled-with-continued-performance-and-security-innovation/] sowie in der Dokumentation [
https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2022?view=sql-server-ver16].
Die Vorschauversion kann kostenfrei unter
https://aka.ms/GetSQLServer2022 bezogen und 180 Tage genutzt werden.