Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Server: Performance-Optimierung

Demo: Wartungsplan

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video demonstriert Thorsten Kansy den praktischen Einsatz eines Wartungsplans, um Indizes zu warten.
06:34

Transkript

Um diese Aufgabe nicht immer regelmäßig selber machen zu müssen, gibt es eine ganz einfache Möglichkeit im SQL Server. Und zwar, ich mache mal die Datenbank zu, scrolle nach unten, SQL Server kennt sogenannte Wartungspläne. Das heißt, ich kann hingehen und, wenn ich nicht manuell das Rebuild machen möchte oder keine andere Infrastruktur habe, um Rebuild, Reorganize durchzuführen. Besser als nichts ist ein Wartungsplan jedenfalls. Das heißt, zwei Dinge sind zu beachten. Punkt Nummer eins: Der SQL Server Agent muss laufen. Das heißt, den starte ich, sonst gibt es gleich ein Problem. Das heißt, die SQL Server Express Edition, die ohne Agent auskommt, die kommt nicht in den Genuss des Wartungsplans. So, der läuft. Dann zweiter Punkt: Rechte Maustaste auf Maintenanceplan oder Wartungsplan. Dann allerdings nicht neuen Wartungsplan, sondern einfach den Wizard aufrufen. Wenn Sie nämlich diesen Punkt hier oben aufrufen, dann landen Sie in der Definition eines SRS Paketes, das im Hintergrund auch vom Wizard erzeugt wird. Allerdings, das ist aufwendiger als es sein muss. Das heißt, ich kann den Wartungsplan hier über den Wizard erzeugen und klicke auf "Next", gib dem einen schönen Namen, ich kann Schedule festlegen, das heißt, ich kann sagen: Ich möchte, das soll jeweils - ja, vielleicht nicht gerade, wirklich zu meiner Spitzenzeit, also irgendetwas mit Samstag ist eine ganz gute Sache, Samstag Mittag klingt ziemlich gut und benutze ich dann so an der Stelle. Dann habe ich hier eine ganze Reihe von Möglichkeiten, wie ich meine Datenbank warten kann. Letztendlich sollten Sie für diesen Kurs und entsprechend für die Indexes "Rebuild and Reorganize Index" auswählen. Es ist zumindest bei SQL Server 2016 so, ich kann nämlich da noch festlegen dann, wie stark die Fragmentierung sein sollte. Beides machen, muss ich eigentlich nicht, aber das kann ich gleich, sozusagen, per Bedingung ausgleiten, dass er nicht zweimal das Gleiche macht. Dann kann ich sagen: - Hat nicht mit Indexes zu tun - aber wenn Sie schon mal so einen Wartungsplan aufsetzen, dann können Sie sich überlegen, dass Sie auch möglicherweise eine Sicherung durchführen an der Stelle. Und das ist dann meistens so ein dritter Schritt. Ich mache das mal nicht, weil das über diesen Kurs definitiv raus gehen würde. Ich habe hier nur ausgewählt: "Reorganize and Rebuild Index". Dann würde ich gerne die Reihenfolge umdrehen. Wir werden auch gleich sehen warum. Also erst Rebuild, dann Reorganize. Und ich bekomme diesen Dialog, der sich schwer tut auf die Auflösung zu passen. Ich kann hier oben die Datenbank auswählen. Ich kann sagen alle Datenbanken, Systemdatenbanken, alle User-Datenbanken oder spezielle Datenbanken, je nachdem, wie ich das Ganze aufsetzen möchte. Ich sage jetzt einfach mal: All User Databases. Scrolle dann ein kleines Stückchen runter. Und hier unten sind die Bedingungen von denen ich sprach. Wo ich festlegen kann, wann soll denn ein Rebuild durchgeführt werden, hier größer 30% und wenn es mehr als tausend Pages gibt an der Stelle. Das heißt, wenn ich den Schritt zuerst laufen lasse, werden erstmal alle Indexes neu gebaut, die eine sehr hohe Fragmentierung haben und im zweiten Schritt wird mit Reorganize quasi hingegangen und die die mehr halt, - es wird gleich 15% vorschlagen - entsprechend mehr als 15% fragmentiert sind. Wenn ich es mir leisten kann, wenn ich genug Laufzeit habe, können Sie eigentlich immer ein Rebuild machen, da müssen Sie nicht differenzieren. Sie können sagen: OK, dann baue ich es neu, dann braucht der ganze Prozess vielleicht nicht drei Minuten, sondern insgesamt fünf Minuten für eine Datenbank. Damit kann ich leben. Aber wenn Sie sich große Datenbanken vorstellen, können Sie sich vorstellen, dass es einen Unterschied macht. Ob die ganze Aktion 20 Stunden braucht oder ob die ganze Aktion 30 Stunden braucht. Da kann es durchaus mal, um einige Stunden gehen, also wenn es für Sie völlig in Ordnung ist, von der Laufzeit her, das Sie Rebuild durchführen, dass Sie sagen: OK, es kostet mich 20 Minuten, 30 Minuten, 5 Minuten, was auch immer dann machen Sie einfach ein Rebuild an der Stelle. Hier gehe ich aber ein bisschen differenzierter vor, das heißt, ich belasse es hier auch bei den Standardwerten und gehe dann zum nächsten Schritt und das ist das Reorganize und da kann ich auch wieder sagen, alle User-Datenbanken. Und Sie sehen hier schon eine Fragmentierung größer 15%. Das dürften nur noch die sein, die vorher zwischen 15 und 30% gelegen haben vorher. Wieder ein Page Count mit mindestens 1000 Seiten, also alles was kleiner ist, wird gar nicht berücksichtigt. Hier unten hat man und hatte beim rebuild auch die Möglichkeit zu sagen, Index, der die letzten Tage so und so viel benutzt wurde. Das kann man machen, aber letztendlich muss man ein bisschen vorsichtig sein, ob das ein richtig gute Idee ist. Es kann sein, dass Sie so etwas, wie einen Monatsabschluss haben, dann könnte es sein, dass so ein Index nur einmal im Monat benutzt wird und wenn der dann nicht gewartet wird zwischendurch, weil der gar nicht verwendet wird unter dem Monat, dann macht das natürlich auch nicht besonders viel Sinn. Insofern ist das eine Option, die Sie setzen können, die standardmäßig nicht gesetzt ist. So, und das war es dann eigentlich schon. Dann kann ich noch weitere Schritte machen, ich kann dem Wartungsplan sagen, wo sollen die Reports gespeichert werden, ich kann, wenn es entsprechend ein Report vorliegt, das einem Operator senden, und so weiter und so fort. Last but Not least wird das nochmal zusammengefasst, was ich da zusammen geklickt habe gerade. Man legt hier den Wartungsplan an. Und den habe ich dann hier entsprechend unter Wartungspläne oder MaintenancePlan an der Stelle und gleichzeitig hier im SQL Server Agent als einer dieser Jobs - ich vermute mal, das dürfte der hier sein - es ist leider kein Klarname, der hier zu finden ist. Wenn ich möchte, kann ich einen solchen Wartungsplan auch ad hoc ausführen. Gehe ich einfach hier auf Wartungsplan ausführen, "Execute". Und dann läuft er und wird mir letztendlich dann, vermutlich sagen: OK, alles fertig an der Stelle. Das heißt, wenn Sie nicht die Wartung Ihrer Datenbank von Hand durchführen wollen, also die ganzen Indexes abklappern und gucken, wie stark welcher Index fragmentiert ist, und sich dann zwischen einem Reorg, einem Reorganize und einem Rebuild entscheiden wollen, dann sollten Sie zumindest einen Wartungsplan aufsetzen. Das ist definitiv besser als nichts zu machen.

SQL Server: Performance-Optimierung

Lernen Sie den Umgang mit Indizis und Tools, um die Leistungsfähigkiet Ihrer SQL Server Datenbank effektiv zu erhöhen.

3 Std. 20 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:04.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!