Wartungspläne und PHYSICAL_ONLY

Nicht jeder ist ein Freund von Wartungsplänen, aber über eine Änderung mit SQL Server 2016 sollte man schon Bescheid wissen!

Wer einen neuen Wartungsplan (über den Assistenten oder von Hand) anlegt, kann ganz einfach regelmäßig seine Datenbanken auf Konsistenz prüfen lassen. Alternativ kann man natürlich auch ein DBCC CHECKDB selber absetzen. Aber mit SQL Server 2016 gibt es die neue Option PHYSICAL_ONLY, die auch noch als Standardwert gesetzt ist.
Man sieht dies klein und unauffällig in diesem Bild:

Etwas auffälliger wird es zwar in dem nächsten Bild, indem man den Schritt per Doppelklick öffnet. Dort ist also das Häkchen bei "nur physisch" gesetzt.

Aber was genau dahinter steckt und welche Konsequenzen das haben kann, sieht man hier nicht.

Was bedeutet dies aber für die eigentliche Überprüfung?

Dazu schauen wir mal in die Online-Doku zu DBCC CHECKDB. Dort steht unter anderem zu PHYSICAL_ONLY:

Begrenzt die Überprüfung der Integrität der physischen Struktur der Seiten- und Datensatzheader und der Zuordnungskonsistenz der Datenbank.

Einen netten Hinweis gibt es auch noch, hier die korrigierte Übersetzung:
Angabe von PHYSICAL_ONLY bewirkt, dass DBCC CHECKDB alle Prüfungen der FILESTREAM-Daten überspringt.
Immerhin kommt im Text auch noch dieser gutgemeinte Ratschlag: Dennoch ist eine vollständige Ausführung von DBCC CHECKDB in regelmäßigen Abständen empfehlenswert.

Ich würde es mal anders formulieren: Wenn man keine besonders großen Datenbanken im Terra-Byte Bereich hat und zudem über ein Wartungsfenster am Wochenende oder in der Nacht verfügt, sollte man die vollständige Konsistenzprüfung lieber zu oft als zu selten machen. Sollte man sie nur selten machen, dann ist es absolut notwendig diesen Zeitraum mit entsprechenden Backups abzudecken, damit man im Fehlerfall damit wieder aufsetzen kann.

Einen zweiten Wartungsplan mit vollständiger Überprüfung legt der Wizard übrigens auch nicht automatisch dazu an, so dass die "Zufalls-DBAs" damit erst Recht im Regen stehen!

Maximaler Grad an Parallelität

Wer die Masken oben aufmerksam studiert hat, sieht die neue Option Maximaler Grad an Parallelität. Neue Option? Nein, bereits ab SQL Server 2014 SP2 ist diese Option verfügbar für DBCC CHECKDB. Sie ist halt nur nicht in den Wartungsplänen auf SQL Server 2014 verfügbar!

Hat man also den max degree of parallelism auf seinem System z. B. auf 2 reduziert, da man überwiegend OLTP macht, dann läuft natürlich auch die Konsistenzprüfung damit. Für eine resourcenintensivere Überprüfung muss man das DBCC CHECKDB mit der Option MAXDOP selber absetzen.

Auch wenn das Management Studio in allen Versionen diese Syntax anmeckert, wird sie doch ab SQL Sever 2014 SP2 problemlos ausgeführt:

dbcc checkdb (CMU) WITH MAXDOP = 4;

Ola Hallengren hat dies auch bereits in seinen Skripten zum SQL Server Integrity Check berücksichtigt. Das ist also auf jeden Fall eine Alternative für versierte DBAs zu den Wartungsplänen mit und ohne Assistent.