SQL Server 2016 – IFI-Aktivierung und TempDB-Optimierung

Jetzt wo der SQL Server 2016 offiziell erschienen ist, kommen auch immer mehr Details ans Licht, so dass man sich so langsam auf die ersten „richtigen“ Installationen vorbereiten kann/muss. Was hat sich im Vergleich zum SQL Server 2014 im Rahmen der Installation alles geändert? Wie muss man die vorhandene Dokumentation anpassen?

Beim Lesen zahlreicher Tweets und Blogs bin ich über einen Tweet zum SQL Server 2016 von Thomas Larock gestolpert, hier hat er eine sehr schöne Übersicht über eine Vielzahl von Neuerungen im SQL Server 2016, mit denen man zum Beispiel die Performance des SQL Servers steigern kann, erstellt. Bisher musste man eine Vielzahl von Parametern und Einstellungen zur Performance Optimierung vor der Installation (z.B. Instant File Initialization) oder wie die Anzahl der TempDB-Files nach der Installation anpassen.

Ich möchte hier auf die Neuerungen im Rahmen der SQL Server 2016 Installation eingehen, über die ich mich persönlich sehr freue, weil sie einen Teil meiner Arbeit sehr vereinfachen.

Instant File Initialization

Bisher musste man umständlich VOR der Installation des SQL Servers immer über die lokale Sicherheitsrichtlinie über das System-Tool „secpol.msc“ dem SQL-Service-User die Berechtigungen für „Perform Volume Maintenance Tasks/Durchführen von Volumenwartungsaufgaben“ einräumen. Erst das Tool öffnen, dann durch einen Strukturbaum klicken und noch die richtige Berechtigung finden, um dann den User in der Userverwaltung zu suchen… ein wirklich aufwändiger Weg um das Vollschreiben neuer Dateien bzw Dateibereiche zu umgehen, um so z.B. den Autogrowth Event zu beschleunigen…

Jetzt mit dem neuen SQL Server 2016 geht es wesentlich einfacher, da der Installationsprozess die Arbeit für uns übernimmt. Hier hat Microsoft, die in der Community gängige Praxis optimal umgesetzt und im Rahmen der Installation die Möglichkeit geschaffen einfach nur einen Haken zu setzen… tada…

SQLServer2016 Instant File Initialization

Nun kann man ganz einfach während der Installation einen Haken setzen und der Installationsprozess übernimmt für einen die Arbeit. Vielen Dank hierfür an Micorsoft!
Falls man den SQL Server 2016 von der Commandline installiert, hat man beim Aufrufen der „Setup.exe“ auch die Möglichkeit diesen Parameter entweder in der ConfigurationFile.ini mit anzugeben oder direkt als Option am Aufruf

/SQLSVCINSTANTFILEINIT=”True”

Automatic TEMPDB Configuration

Die Konfiguration der TempDB nach erfolgter Installation nahm immer ein wenig Zeit in Anspruch, natürlich konnte man das bisher auch skripten, aber so einfach wie jetzt war es noch nie bzw es bedeutete trotzdem einen gewissen Aufwand. Auch diese Konfiguration hat Microsoft in den Installationsprozess verlegt, so dass man nach der Installation nicht noch ein weiteres Skript aufrufen muss.

SQLServer2016 Config TempDB

In diesem neuen Tab unter Database Engine Configuration kann man die Anzahl der TempDB-Files, deren initiale Größe und Autogrowth-Wert festlegen. Man kann die Pfade beider Filetypen individuell anpassen, theoretisch könnte man auch mehrere Pfade für die TempDB-Datenfiles angeben.

Auch bei diesem neuen Konfigurations-Tab gibt es die Möglichkeit die Parameter über die ConfigurationFile.ini oder die Kommandozeile mitzugeben.

/SQLTEMPDBFILECOUNT=”8″ /SQLTEMPDBFILESIZE=”16″ /SQLTEMPDBFILEGROWTH=”256″ /SQLTEMPDBDIR=”C:\tempdb” “D:\tempdb” /SQLTEMPDBLOGFILESIZE=”256″ /SQLTEMPDBLOGFILEGROWTH=”0″ /SQLTEMPDBLOGDIR=”E:\tempdblog”

Diese oben genannten Optimierung (oder besser Vereinfachungen) machen die Installation und performance-orientierte Konfiguration des SQL Servers wesentlich komfortabler. Allerdings hat es auch einen kleinen Nachteil (*Augenzwinker*), die DBAs verlieren einen Teil ihres Einflusses, da nun jeder die Möglichkeit hat, diese Performance-Schrauben zu bedienen.

Björn arbeitet in Hamburg als Datenbank-Administrator und Head of Competence für MS SQL und mySQL. Er nimmt regelmäßig an den PASS Regionalgruppen Treffen in Hamburg, den Veranstaltungen der PASS wie SQLSaturday und SQLGrillen teil und er organisiert in Hamburg das Azure Meetup. Er interessiert sich neben den Themen rund um den SQL Server, Powershell und Azure für Science-Fiction, Snowboarden, Backen 😉 und Radfahren.