Microsofts "intelligente Datenbank": Microsoft SQL Server 2019 ist erschienen

Die neue Ausgabe des SQL Servers bewirbt Hersteller Microsoft als intelligente Datenbank.

In Pocket speichern vorlesen Druckansicht 101 Kommentare lesen
Analyse: Microsoft kündigt SQL Server für Linux an
Lesezeit: 6 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Microsoft hat im Rahmen der Ignite-Konferenz die 2019er Version seines Datenbankmanagementservers veröffentlicht. Hinter Marketingbegriffen wie "Big Data Cluster" und "Intelligent Database" verbergen sich eine Reihe von konkreten Verbesserungen im Bereich Clustering und Performance. Neu ist auch, dass der SQL Server nun Java intern ausführen kann.

Microsoft vermarktet den neuen Server 2019 (interne Versionsnummer 15.0) direkt an mehreren Stellen mit dem Schlagwort "intelligent". Unter dem Oberbegriff "Intelligent Database" findet man in dem Dokument What's new in SQL Server 2019? die Unterrubriken Intelligent Query Processing, In-Memory-Database, Intelligent Performance und Monitoring.

Als Intelligent Query Processing (IQP) bezeichnet Microsoft eine Reihe von Optimierungen bei der Verarbeitung von Abfragen So gibt es nun eine Funktion APPROX_COUNT_DISTINCT(expression), die deutlich schneller ist als der Einsatz von COUNT(DISTINCT …), aber nicht ganz exakte Ergebnisse liefert, was bei der Verarbeitung großer Datenmengen in einigen Szenarien ein Kompromiss sein kann.

Als "Intelligent Performance" bezeichnet das Unternehmen eine Reihe von darüber hinausgehenden Verbesserungen der Ausführungsgeschwindigkeit von Datenbankoperationen. Einige davon sind interner Art und ohne Zutun des Nutzers verfügbar. Das gilt zum Beispiel für die Erhöhung der Log Writer Workers. Andere Features muss der Datenbankadministrator oder Entwickler explizit aktivieren. So kann er nun beim Anlegen eines Index den Zusatz OPTIMIZE_FOR_SEQUENTIAL_KEY, angeben, was das Einfügen von Datensätzen in einen Index mit sequentiellen Schlüsselwerten beschleunigt.

Im Bereich der In-Memory-Database, deren erste Features der Hersteller in SQL Server 2014 eingeführt hatte, bietet die 2019er Version nun auch an, die Metadaten der TempDB im RAM zu halten.

Mit einem Database Snapshot kann eine Datenbankadministrator eine nicht beschreibbare Momentaufnahme der Datenbank erzeugen, etwa für eine Auswertung oder einen Bericht. Der Snapshot verbraucht dabei zu Beginn keinen Speicher. Erst wenn die Originaldatenbank sich verändert, muss der Snapshot die Abweichungen vom Original ablegen, um den Nutzer stets den Datenbestand zum Zeitpunkt seiner Erstellung zu liefern.

Im Bereich des Monitorings bietet der SQL Server eine neue Ansicht der letzten Abfrage-Ausführungspläne (Last Query Plan Statistics). Diese Statistik muss der Datenbankadministrator mit der Konfigurationseinstellung LAST_QUERY_PLAN_STATS auf Datenbankebene aktivieren. Der Aufruf der Informationen kann dann mit der dynamic management function sys.dm_exec_query_plan_stats erfolgen.

Die bereits in SQL Server 2014 eingeführte und in SQL Server 2016 verbesserte Lightweight Query Profiling Infrastructure (LWP) hat Microsoft verbessert. Sie ist nun im Standard für die Live QueryStatistics im SQL Server Management Studio aktiviert. Das Feature lässt sich jedoch über die Datenbank-Konfigurationseinstellung LIGHTWEIGHT_QUERY_PROFILING deaktivieren.

Als SQL Server 2019 Big Data Cluster (BDC) bezeichnet Microsoft einen Linux-basierten Container-Verbund aus SQL Server und Apache Spark in Kubernetes oder Azure Kubernetes Services (AKS), jeweils ab Version 1.13. Die Speicherung erfolgt im Hadoop Distributed File System (HDFS) auf Basis verschiedener Storage-Provider (siehe Abbildung 1).

SQL Server Big Data Cluster

(Bild: Microsoft)

Das in SQL Server 2016 eingeführt Feature PolyBase für den Zugriff auf externe Hadoop- und Azure Blog Storage-Datenquellen via T-SQL erweitert Microsoft in SQL Server 2019 um den Zugriff auf Oracle, MongoDB, Terradata und andere SQL Server-Instanzen. Auch einen Connector für ODBC gibt es nun. Hier spricht Microsoft im Marketing nun von "Data Virtualization".

Bei den Zeichensätzen unterstützt der SQL Server 2018 nun auch UTF-8 bei der Sortierung von Zeichenketten sowie dem Im- und Export von Datensätzen.

Bei der Match-Operation in einer Graph-Datenbank ist nun die Funktion SHORTEST_PATH erlaubt. Zudem ermöglicht eine Graph-Datenbank die bisher nur bei relationalen Datenbanken erlaubte Partitionierung von Tabellen und Index.

Mit SQL Server 2019 bietet Microsoft erstmal an, Java-Code innerhalb des DBMS zu nutzen. Innerhalb eines SQL-Skripts kann der Nutzer die Stored Procedure "sp_execute_external_script" unter Angabe eines Java-Klassennamens aufrufen. Diese Java-Klasse muss eine der beiden abstrakten Klassen AbstractSqlServerExtensionExecutor oder AbstractSqlServerExtensionDataset aus dem Microsoft Extensibility SDK for Java for SQL Server implementieren. Das SDK ist als Open Source auf Github verfügbar.

Bisher unterstütze der SQL Server in seinem Inneren nur Transact-SQL (T-SQL) und .NET-Klassen mit C# oder Visual Basic .NET. Zukünftig ist die Integration weiterer Programmiersprachen möglich auf Basis der SQL Server Language Extensions.

Seit SQL Server 2016 bietet Microsoft mit Always Encrypted die Verschlüsselung von Daten vom Client bis zum DBMS an, sodass selbst Datenbankadministratoren die Daten nicht einsehen können. Dementsprechend war die Datenverarbeitung der verschlüsselten Spalten auf Gleichheitsoperationen beschränkt.

In SQL Server 2019 ergänzt Microsoft mit Secure Enclaves die Möglichkeit, die verschlüsselten Daten in eine abgetrennten Blackbox auf dem Datenbankserver im Klartext zu verarbeiten (siehe Abbildung 2). Es gibt aber keine Möglichkeit, Daten oder Code innerhalb einer solchen Enklave von außen einzusehen, auch nicht mit DB-Administratorrechten und einem Debugger.

Secure Enclaves als Erweiterung für Always Encrypted in Microsoft SQL Server 2019

(Bild: Microsoft)



Die Datenbankwiederherstellung beschleunigt Microsoft durch Accelerated Database Recovery (ADR). Durch die Aktivierung dieses Features auf Datenbankebene (ACCELERATED_DATABASE_RECOVERY) soll auch ein Rollback langlaufender Transaktionen schneller werden.

In einem Blogeintrag betont Microsoft, dass die neuen Features von SQL Server 2019 ohne eine Erhöhung der Lizenzkosten verfügbar sind. Kunden mit einem Software Assurance-Vertrag erhalten zusätzlich kostenfrei Disaster Recovery-Replikate in der Microsoft Azure-Cloud. (akl)