Skip to content

„Fun with Spellchecking“

Gerade habe ich den Text für mein neues Buch „SQL Server – Performanceprobleme analysieren und beheben“ fertig gestellt, das Anfang September bei entwickler.press erscheinen wird. Beim finalen Check mit der Rechtschreibkorrektur meiner favorisierten Textverarbeitung sind wieder ein paar echte Stilblüten bei den Korrekturvorschlägen dabei gewesen:

Autoshrink -> Autorin (wenn schon, dann bitte doch Autor, oder?!)
Workload -> Wroclaw (vielleicht ein versteckter Hinweis auf polnische Gastarbeiter aus Breslau?)
Join -> Joint (je nachdem, wierum man ihn dreht, wird daraus ein LEFT JOINT oder ein RIGHT JOINT)
Extent -> Externat (ich kannte bisher nur den Begriff Internat, aber man lernt ja nie aus)
Schema_Id -> Schamade (man wird doch nicht gleich aufgeben wollen, oder?!)
Latch -> latsch (beides steht irgendwie für eine gewisse Form der Langsamkeit)
Hallengren -> Challenger (so schnell wird der Autor der bekannten Wartungsskripte zum Herausforderer der Datenbank)

Doch zum Schluß meine beiden Favoriten:

Rebuild -> Raubwild (so gefährlich habe ich einen Indexneuaufbau gar nicht eingeschätzt)
Filestream -> Filetsteak (na dann Mahlzeit!)

SQL Server 2016 RTM jetzt verfügbar

Im Laufe des gestrigen Tages ist nun endlich die finale Version des SQL Server 2016 erschienen und über die üblichen Quellen (MSDN etc. verfügbar).

Verfügbare Editionen

An den verfügbaren Editionen hat sich einiges geändert. So gibt es mittlerweile nur noch 64-Bit Versionen. Die Business Intelligence Edition fällt ebenfalls weg und auch die verfügbaren Varianten der Express Edition wurden etwas bereinigt (die mittlere Variante „Express mit Tools“ fällt weg, man muss sich nun nur noch zwischen „Express“ und „Express mit Advanced Services“ entscheiden). Am unteren Ende der „Nahrungskette“ ist auch weiterhin die SQL Server LocaldB verfügbar. Am anderen Ende ist allerdings auch die Developer Edition inzwischen kostenfrei verfügbar (darf natürlich wie bisher nicht produktiv eingesetzt werden).

Als kommerzielle Editionen gibt es wie gewohnt die Standard, Web und Enterprise Edition, die nun noch um eine Enterprise Core Edition ergänzt wurden.

Verwaltungstools

Etwas gewöhnungsbedürftig ist die Tatsache, dass das SQL Server Management Studio nun nicht automatisch mitinstalliert wird, sondern eine separate Installation erfordert. Der Link der in der deutschen Version des SQL Server-Installationscenters angegeben ist, verweist leider noch auf die Januar-Preview des Management Studios. Die entsprechende englischsprachige Seite enthält allerdings den korrekten Link, über den auch die deutsche Variante der finalen Verwaltungstools heruntergeladen werden kann: https://msdn.microsoft.com/en-us/library/mt238290.aspx

Dasselbe Spiel wiederholt sich bei den SQL Server Data Tools. Auch hier verweist die deutschsprachige Seite auf eine Preview vom November 2015, während über die englischsprachige Seite bereits die finale Version (ebenfalls in deutsch) verfügbar ist: https://msdn.microsoft.com/en-us/library/mt204009.aspx

(Die aktuellen SQL Server Data Tools nutzen übrigens noch die Visual Studio 2015 Shell, da Visual Studio 2016 noch nicht final released ist.)

Weitere Informationen

Weitere Informationen zu SQL Server 2016 gibt es auf der offiziellen Produktseite:
https://www.microsoft.com/en-us/server-cloud/products/sql-server
(die deutschsprachige Variante derselben Seite ist noch nicht auf SQL 2016 umgestellt)

Dazu ist wieder ein kostenfreies eBook von Microsoft verfügbar, in dem auf 215 Seiten alle wesentlichen Neuerungen detailliert beschrieben werden:
https://info.microsoft.com/Introducing-SQL-Server-2016-eBook.html

 

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.

 

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.