Sie sind hier: Wissen

Was ist Microsoft SQL Server 2019 ?

Microsoft SQL Server 2019 (interne Versionsnummer 15.0) ist am 4.11.2019 als Nachfolger von Microsoft SQL Server 2017 im Rahmen der Ignite Konferenz erschienen.

Microsoft vermarktet den neuen Server 2019 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?" [https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-ver15?view=sql-server-ver15] die Unterrubriken Intelligent Query Processing, In-Memory-Database, Intelligent Performance und Monitoring.
Leistungsverbesserungen

Als Intelligent Query Processing (IQP) bezeichnet Microsoft eine Reihe von Optimierungen bei der Verarbeitung von Abfragen [https://docs.microsoft.com/en-us/sql/relational-databases/performance/intelligent-query-processing?view=sql-server-ver15#approximate-query-processing]. So gibt es nun eine Funktion APPROXCOUNTDISTINCT(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 Microsoft eine Reihe von darüber hinausgehenden Verbesserungen der Ausführungsgeschwindigkeit von Datenbankoperationen. Einige Verbesserungen sind interner Art und ohne Zutun des Nutzers verfügbar (z.B. die Erhöhung der Log Writer Workers [https://blogs.msdn.microsoft.com/bobsql/2019/02/11/sql-server-log-writer-workers/]. Andere Features muss der Datenbankadministrator bzw. Entwickler aktivieren. So kann er nun beim Anlegen eines Index den Zusatz OPTIMIZEFOR_SEQUENTIALKEY, 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ührte hatte, bietet die 2019er Version nun auch an, die Metadaten der TempDB im RAM zu halten [https://docs.microsoft.com/en-us/sql/relational-databases/databases/tempdb-database?view=sql-server-ver15#memory-optimized-tempdb-metadata].

Mit einem Database Snapshot kann eine Datenbankadministrator eine nicht beschreibbare Momentaufnahme der Datenbank erzeugen, z.B. 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 [https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15], um den Nutzer stets die Datenbestand zum Zeitpunkt seiner Erstellung zu liefern.

Monitoring der Ausführungspläne

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

Die bereits in SQL Server 2014 eingeführte und in SQL Server 2016 verbesserte Lightweight Query Profiling Infrastructure (LWP) wurde verbessert und ist nun im Standard für die Live Query Statistics im SQL Server Management Studio [https://www.sqlshack.com/lightweight-performance-profiling-in-sql-server-2019/ ] aktiviert. Das Feature kann aber über die Datenbankkonfigurationseinstellung LIGHTWEIGHTQUERYPROFILING deaktiviert werden.

Big Data Cluster

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 [https://docs.microsoft.com/en-us/sql/big-data-cluster/release-notes-big-data-cluster?view=sql-server-ver15]. Die Speicherung erfolgt im Hadoop Distributed File System (HDFS) auf Basis verschiedener Storage-Provider.

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 [https://docs.microsoft.com/en-us/sql/relational-databases/polybase/polybase-guide?view=sql-server-ver15]. Auch einen Connector für ODBC gibt es nun [https://docs.microsoft.com/en-us/sql/relational-databases/polybase/polybase-configure-odbc-generic?view=sql-server-ver15]. 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 [https://cloudblogs.microsoft.com/sqlserver/2018/12/18/introducing-utf-8-support-in-sql-server-2019-preview/].

Bei der Match-Operation in einer Graph-Datenbank [https://docs.microsoft.com/de-de/sql/t-sql/queries/match-sql-graph?view=sql-server-ver15] ist nun die Funktion SHORTEST_PATH erlaubt. Zudem können erlaubt eine Graph-Datenbank die bisher nur bei relationalen Datenbanken erlaubt Partitionierung von Tabellen und Index.

Java im SQL Server

Mit SQL Server 2019 bietet Microsoft erstmal an, Java-Code innerhalb des Datenbankmanagementservers zu nutzen. Innerhalb eines SQL-Skripts kann der Nutzer die Stored Procedure "spexecute_externalscript" unter Angabe eines Java-Klassennamensnamens
[https://docs.microsoft.com/en-us/sql/language-extensions/how-to/call-java-from-sql?view=sql-server-ver15]. Die auszurufende 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 Open Source auf Github verfügbar [https://github.com/microsoft/sql-server-language-extensions].

In der Vergangenheit hat der SQL Servers in seinem Inneren nur Transact-SQL (T-SQL) und .NET-Klassen mit C# oder Visual Basic .NET unterstützt. Zukünftig ist die Integration weiterer Programmiersprachen möglich auf Basis der SQL Server Language Extensions [https://docs.microsoft.com/de-de/sql/language-extensions/language-extensions-overview?view=sql-server-ver15].
Sichere Enklaven für verschlüsselte Daten
Seit SQL Server 2016 bietet Microsoft mit Always Encrypted die Verschlüsselung von Daten vom Client bis zum Datenbankmanagementsystem 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 [https://docs.microsoft.com/de-de/sql/relational-databases/security/encryption/always-encrypted-enclaves?view=sql-server-ver15] die Möglichkeit, die verschlüsselten Daten in eine abgetrennten Blackbox auf dem Datenbankserver im Klartext verarbeiten zu können. Es gibt aber keine Möglichkeit, Daten oder Code innerhalb einer solchen Enklave von außen einzusehen, auch nicht mit Datenbankadministratorrechten und einem Debugger.

Schnellere Wiederherstellung

Die Datenbankwiederherstellung beschleunigt Microsoft durch Accelerated Database Recovery (ADR) [https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-and-recovery-overview-sql-server?view=sql-server-ver15#adr]. Durch die Aktivierung dieses Features auf Datenbankebene (ACCELERATEDDATABASERECOVERY) 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 [https://cloudblogs.microsoft.com/sqlserver/2019/11/04/gain-intelligence-over-data-with-sql-server-2019-now-generally-available/]. Kunden mit einem Software Assurance-Vertrag erhalten zusätzlich kostenfrei Disaster Recovery-Replikate in der Microsoft Azure-Cloud [https://cloudblogs.microsoft.com/sqlserver/2019/10/30/new-high-availability-and-disaster-recovery-benefits-for-sql-server/].

Beratung & Support

Schulungen zu diesem Thema

 Anfrage für eine individuelle Schulung zum Thema Microsoft SQL Server 2019  Gesamter Schulungsthemenkatalog

Bücher zu diesem Thema

  PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
  .NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
  Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
  Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
  C# 12.0 Crashkurs
  Cross-Plattform-Apps mit .NET MAUI entwickeln
  Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
  C# 11.0 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
  PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
  App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
  Vue.js 3 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
  Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
  C# 10.0 Crashkurs
  Cross-Plattform-Apps mit Xamarin.Forms entwickeln
  Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
  PowerShell – kurz & gut
  C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin
  ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications
  Windows PowerShell 5 und PowerShell 7: Das Praxisbuch
  Moderne Datenzugriffslösungen mit Entity Framework Core 5.0
  ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
  ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
  Moderne Datenzugriffslösungen mit Entity Framework Core 3.1
  C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 3.0
  Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.1/2.2
  Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript
  C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Modern Data Access with Entity Framework Core: Database Programming Using .NET, .NET Core, UWP, and Xamarin with C#
  Windows PowerShell und PowerShell Core - Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS
  Programmierung in Python
  C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.0/2.1
  Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.0
  Windows PowerShell 5 und PowerShell Core 6 - Das Praxishandbuch
  Angular - Das Praxisbuch zu Grundlagen und Best Practices
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 und 2.0-Preview2
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
  Introducing Regular Expressions: JavaScript and TypeScript
  Introducing Web Development
  Introducing Bootstrap 4
  Programming Web Applications with Node, Express and Pug
  Einführung in TypeScript: Grundlagen der Sprache TypeScript 2
  Pug – Die Template-Engine für node.js
  Web-Programmierung mit Node, Express und Pug
  Windows PowerShell 5 – kurz & gut
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
  Windows PowerShell 5.0 - Das Praxishandbuch
  PHP 7 und MySQL: Von den Grundlagen bis zur professionellen Programmierung
  Windows Scripting Lernen
  .NET Praxis - Tipps und Tricks für .NET und Visual Studio
  Grundlagen für Web-Entwickler: Protokolle, HTML und CSS
  Bootstrap 3 - Stile und Komponenten
  Bootstrap 4 - Stile und Komponenten
  Einführung in JavaScript: ECMAScript 5
  Einführung in node.js
  express – Middleware für node.js
  JADE – Die Template Engine für node.js
  Reguläre Ausdrücke in JavaScript
  Moderne Datenzugriffslösungen mit Entity Framework 6
  C++ Standardbibliothek
  AngularJS: Moderne Webanwendungen und Single Page Applications mit JavaScript
  Microsoft SharePoint Server 2013 und SharePoint Foundation: Das umfassende Handbuch
  SQL Server 2014 für Professionals: Hochverfügbarkeit, Cloud-Szenarien, Backup/Restore, Monitoring & Performance
  Moderne Webanwendungen mit ASP.NET MVC und JavaScript
  Windows PowerShell 4.0 - Das Praxishandbuch
  JavaScript: Das umfassende Handbuch, inkl. HTML5, JavaScript-Frameworks, jQuery, OOP
  C++11 für Programmierer
  C++ kurz und gut
  Microsoft ASP.NET 4.5 - Entwicklerbuch
  Moderne Webanwendungen mit ASP.NET MVC
  Verteilte Systeme und Services mit .NET 4.5
  Scripting mit Windows PowerShell 3.0 - Der Workshop: Skript-Programmierung mit Windows PowerShell 3.0 vom Einsteiger bis zum Profi
  Windows 8 für Administratoren
  Windows 8.1 - Das Handbuch (27. November 2013)
  Windows Store Apps entwickeln mit C# und XAML - Crashkurs
  .NET 4.5 Update
  Windows Scripting Lernen
  WPF 4.5 und XAML
  Datenbankprogrammierung mit .NET 4.5
  C++11: Der Leitfaden für Programmierer zum neuen Standard
  Verteilte Systeme und Services mit .NET 4.0
  Microsoft ASP.NET 4.0 mit C# 2010 - Entwicklerbuch
  Agile Software Engineering with Visual Studio
  Datenbankprogrammierung mit .NET 4.0. Mit Visual Studio 2010 und SQL Server 2008 R2
  Microsoft SharePoint Server 2010 und SharePoint Foundation 2010
  Microsoft SQL Server 2008 R2 - Das Entwicklerbuch
  Microsoft Viusal C# 2010
  Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
  Programmieren mit dem ADO.NET Entity Framework
  .NET 4.0 Crashkurs
  Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
  .NET 4.0 Update
  Windows PowerShell 2.0 - Das Praxishandbuch
  Windows 7 im Unternehmen
  Agile Muster und Methoden
  Ajax
  ASP.NET 4.0
  ASP.NET 4.0 mit Visual C# 2010
  JavaScript
  PHP 5-Migration
  Scripting mit Windows PowerShell 2.0 - Der Einsteiger-Workshop
  SQL Server 2008 R2: Das Programmierhandbuch. Inkl. ADO.NET 3.5, LINQ to Entities und LINQ to SQL
  Visual Basic 2010
  Windows PowerShell 2.0 - Crashkurs
  Windows Server 2008 R2
  Windows Scripting
  Windows Scripting Lernen
  Data Mining mit Microsoft SQL Server
  Windows 7 für Administratoren
  Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Entwicklerbuch
  .NET 3.5
  Essential PowerShell
  .NET 3.5 Crashkurs
  Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
 Alle unsere aktuellen Fachbücher  E-Book-Abo für ab 99 Euro im Jahr