Skip to content

Neue Features für künftige Versionen von SQL Server

SQL Server 2016 steht vor der Tür und wird voraussichtlich noch in diesem Quartal veröffentlicht. Die Release Candidates sind schon verfügbar und auch die Features sind mittlerweile weitgehend bekannt. Allerdings wird bereits an der darauf folgenden Version gearbeitet, zu der nun die ersten Infos zu möglichen Features durchgesickert sind:

Gefilterte gruppierte Indizes

Die Daten der Tabelle werden in zwei verschiedenen Arten vorgehalten. Die Zeilen, die der WHERE-Klausel entsprechen werden in Form eines gruppierten Indexes abgelegt, während die restlichen Zeilen als Heap gespeichert werden. Somit können bei passenden Abfragen die Vorteile eines gruppierten Indexes mit denen eines gefilterten Indexes kombiniert genutzt werden. Im Notfall ist aber auch noch die Gesamtheit der Daten abfragbar, ohne die indizierten Daten doppelt speichern zu müssen.

Beispiel:

CREATE CLUSTERED INDEX CX_PersonPhone_BusinessEntityID_CellPhoneNumber
ON Person.PersonPhone(PhoneNumber)
WHERE PhoneNumberTypeID=1

Der neue DISLIKE-Operator

Mit dem neuen DISLIKE Vergleichsoperator steht bald eine kompaktere Form des NOT LIKE zur Verfügung.
Während die alte Variante aber eine Kombination aus zwei Operatoren ist (LIKE-Operator mit anschließender Negierung durch NOT), wird der neue DISLIKE-Operator in einem Schritt ausgeführt und arbeitet daher auch deutlich performanter.

Beispiel:

SELECT * FROM Person.Person
WHERE LastName DISLIKE ‚Brown%‘

Da es sich bei diesem neuen Operator um eine T-SQL Erweiterung handelt, dürfte dieses Feature (auch wenn es ein Performance-Feature ist) nicht nur der Enterprise Edition vorbehalten sein, sondern stattdessen auch für die kleineren Editionen von SQL Server (bis hin zu Express) zur Verfügung stehen.

Neue Datentypen: CHAR(MAX), NCHAR(MAX), BINARY(MAX)

Beim Einfügen eines Datensatzes mit einem der so deklarierten Felder, wird nach dem Speichern der übrigen Spalten der maximal verfügbare Platz auf der jeweiligen 8 KB-Speicherseite für dieses Feld belegt und mit Leerzeichen (bzw. 0-Bytes bei BINARY(MAX)) aufgefüllt. Daraus ergibt sich die Einschränkung, dass nur ein Feld pro Tabelle einen der drei genannten Datentypen verwenden kann, da sonst nicht eindeutig geregelt ist, welches Feld den verfügbaren Platz belegen kann.

Das hat zur Folge, dass ein Datensatz, der einen der genannten Datentypen verwendet, genau eine Speicherseite belegt, wodurch Themen wie Füllfaktor und Index-Padding für diese Tabellen dann nicht mehr relevant sind. Durch die daraus resultierende direkte Beziehung (Anzahl Datensätze = Anzahl Speicherseiten) kann SQL Server deutlich genauere Vorhersagen treffen, wie viele Speicherseiten für die Ausführung einer Abfrage zu lesen sind, was wiederum bessere Ausführungspläne zur Folge haben kann.

Sinnvoll einzusetzen ist dieses Feature aber sicherlich nur dann, wenn die Tabelle ohnehin so breit ist, dass nicht allzu viele Zeilen auf eine Speicherseite passen würden, da ansonsten der Vorteil der insgesamt weniger zu lesenden Speicherseiten überwiegt.

Unklar ist zum jetzigen Zeitpunkt noch, wann diese Features in SQL Server Berücksichtigung finden. Nach den bisherigen Releasezyklen wäre etwa 2018 mit der nächsten Version von SQL Server zu rechnen, wobei es bei Microsoft auch im Bereich der Serverprodukte Ansätze gibt, häufigere aber dafür kleinere Releases zu veröffentlichen.

 

SQL Server 2016 RC1 verfügbar

Die Schlagzahl erhöht sich spürbar. Nachdem am 9. März der erste Release Candidate (RC0) von SQL Server erschienen ist, legte Microsoft lediglich 9 Tage später bereits nach und hat den Release Candidate 1 zum Download bereitgestellt:

https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2016

Wie beim ersten Release Candidate handelt es sich um eine 180 Tage-Testversion (bis dahin dürfte die finale Version ja auf jeden Fall verfügbar sein).

Die wesentlichen Änderungen zum RC0 scheinen im Reporting Services Bereich zu liegen, wobei man bei den Release Candidates davon ausgehen sollte, dass sich an den Features ohnehin nicht mehr viel ändert, sondern vorrangig an der Beseitigung von Fehlern gearbeitet wird.

 

Teil 2 der Artikelserie zum Thema SQL Server Indizes in der Windows Developer

In der aktuellen Ausgabe (4.16) der Zeitschrift Windows Developer ist inzwischen der zweite Teil meiner vierteiligen Artikelserie zum Thema SQL Server Indizes erschienen. Darin geht es um zusätzliche Indexoptionen sowie die Wartung von Indizes (und Indexstatistiken).

Nähere Infos dazu auf der Verlags-Website:
https://entwickler.de/windows-developer-magazin/windows-developer-4-16-210713.html

 

Nachlese zur SQL Konferenz 2016 in Darmstadt

Die SQL Server Konferenz 2016 in Darmstadt ist zu Ende. 3 Tage Konferenz (davon ein PreCon Workshop Tag), ca. 50 Speaker (darunter auch viele MVPs aus dem In- und Ausland) und etwa 500 Teilnehmer machten das darmstadtium für eine kurze Zeit zum Zentrum der deutschen SQL Server Szene.

Die (nachträglich noch etwas ergänzten) Slides zu meinem Vortrag zum Thema Datenqualität können hier heruntergeladen werden: Datenqualität_Panther

SQLKonferenz2016_Panther

Virtuelles SQL Server Launch Event

In Kürze (10.03.2016, 10:00 Eastern Standard Time = 16:00 deutscher Zeit) beginnt das Data Driven SQL Event in New York, bei dem Satya Nadella und Scott Guthrie den neuen SQL Server 2016 launchen. Das Event kann über folgenden Link per Live-Stream mitverfolgt werden: msft.it/6010Bw5Tk

Dies impliziert allerdings noch nicht zwingend die Verfügbarkeit der RTM-Version von SQL Server 2016, die für das zweite Quartal (Gerüchten zufolge im Mai) erwartet wird.

Ergänzung (vom 15.03.2016):

Inzwischen ist über denselben Link auch die Aufzeichnung der Veranstaltung abrufbar (aufgeteilt in mehrere kleine Videos). Dazu ist seit dem 09.03.2016 auch der erste Release Candidate (RC0) von SQL Server 2016 verfügbar. Ein Link zum Download der 180 Tage Testversion ist ebenfalls auf der genannten Seite zu finden.

 

Ankündigung: BASTA! Spring in Darmstadt

Auch auf der diesjährigen Spring-BASTA! werde ich mit einem eigenen Vortrag vertreten sein und zwar am 03. März ab 14:00 Uhr mit dem Thema „Datenqualität konsequent umgesetzt“. Dabei werden verschiedene Ansätze aufgezeigt, wie man mit den Mitteln, die SQL Server in den verschiedenen Versionen (bis hin zu SQL Server 2016) zur Verfügung stellt, eine möglichst gute Datenqualität erreicht. Dabei wird stets die Praxistauglichkeit im Vordergrund stehen. Es geht also weniger darum, was alles theoretisch machbar ist, sondern eher, wie man mit vertretbarem Aufwand die bestmögliche Datenqualität erzielt. Auch der Aspekt, wie man aus Entwicklersicht zu einer möglichst guten Datenqualität beitragen kann, wird dabei eine wichtige Rolle spielen.

Official Speaker at BASTA! 2016 Spring Edition

Die BASTA! Spring mit dem Themenschwerpunkt „The Best of Best Practices!“ findet vom 29. Februar bis 4. März im Maritim Rhein-Main Hotel in Darmstadt statt, wobei der erste und letzte Tag Workshoptage sind, während die anderen drei Tage klassische Konferenztage mit zahlreichen kürzeren Vorträgen sind.

Weitere Infos sind auf der Veranstaltungswebsite zu finden: https://basta.net

Artikelserie zum Thema SQL Server Indizes in der Windows Developer

In der aktuellen Ausgabe (3.16) der Zeitschrift Windows Developer startet meine vierteilige Artikelserie zum Thema SQL Server Indizes.
Im ersten Teil geht es vor allem um Index-Grundlagen der klassischen gruppierten und nicht-gruppierten Indizes. In den folgenden Teilen werden die Themen Indexoptionen, Wartung von Indizes, spezielle Indexformen bis hin zu Columnstore Indizes behandelt, so dass alle wesentlichen Indexthemen abgedeckt sind.

Nähere Infos dazu auf der Verlags-Website:
https://entwickler.de/windows-developer-magazin/windows-developer-3-16-196957.html

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.