Ich habe einen Wartungsplan geerbt, der Folgendes ausführt:
- Alte Daten bereinigen
- Überprüft die DB-Integrität
- Führt Datenbank- und Transaktionsprotokollsicherungen durch
- Reorganisiert unsere Indizes
- Aktualisiert Statistiken
- Löscht alte Sicherungen und Wartungsplandateien
Die Aktualisierung der Statistik des 23-minütigen Wartungsplans dauert erstaunliche 13 Minuten. Während dieses Zeitraums von 13 Minuten ist der Zugriff auf die Datenbank blockiert (oder zumindest die Replikation von dieser Datenbank auf unsere anderen ist angehalten).
Meine Frage lautet:
Wann sollten wir sein? Aktualisieren der Statistiken und warum?
Dies scheint die Art von Dingen zu sein, die wir weniger häufig als jeden Tag tun sollten. Ich versuche, uns aus der „nur weil“ Denkweise herauszuholen, unnötig zu tun Wartung.
Kommentare
- Wie oft / wie werden Zeilen eingefügt / aktualisiert / gelöscht? Für mich ist dies der entscheidende Faktor.
- @JNK Wir fügen ~ 70.000 Zeilen pro Tag in die gesamte Datenbank ein. Aktualisieren Sie ~ 100 Zeilen pro Monat.
- 1 – Dies ist relevanter, wenn wir anhand der TABELLE wissen, wie viele Zeilen und 2 – als Prozentsatz. 70.000 Zeilen pro Tag in einer Tabelle von 1 m unterscheiden sich erheblich von einer Tabelle von 500 m.
- Ich würde empfehlen, etwas wie ola.hallengren.com zu verwenden / … Diese Lösung erstellt / reorganisiert und aktualisiert nur das, was benötigt wird. Auf diese Weise können Sie die Zeit Ihres Wartungsplans verkürzen und außerdem viel Protokollspeicherplatz sparen.
Antwort
Wenn Sie nicht über das entsprechende Wartungsfenster verfügen, ist die tägliche Aktualisierung der Statistiken wahrscheinlich ein wenig übertrieben . Insbesondere, wenn Sie die automatische Aktualisierungsstatistik für die Datenbank aktiviert haben. In Ihrem ursprünglichen Beitrag haben Sie angegeben, dass Benutzer aufgrund dieses Wartungsplans eine Leistungsminderung feststellen. Gibt es keine andere Zeit, um diese Wartung auszuführen? Plan? Kein anderes Fenster? Ich sehe, dass Ihr Plan die Indexreorganisation umfasst. Wann erstellen Sie Indizes neu? Wenn dieser Vorgang ausgeführt wird, werden die Statistiken automatisch aktualisiert (vorausgesetzt, sie sind für den Eingang nicht deaktiviert dex).
Wie oft Sie Statistiken aktualisieren sollten, hängt stark davon ab, wie viele Datenänderungen Ihre Indizes und Daten erhalten. . Wenn nur sehr wenige Änderungen (INSERT
, UPDATE
, DELETE
) an den Daten vorgenommen werden, Dann könnten Sie einen selteneren Zeitplan für den Job zum Aktualisieren von Statistiken haben.
Eine Möglichkeit, herauszufinden, ob Ihre Statistiken veraltet sind, besteht darin, sich die Ausführungspläne anzusehen und festzustellen, ob die geschätzten Zeilen stark von den tatsächlich zurückgegebenen Zeilen abweichen dann ist das ein guter Hinweis darauf, dass das Intervall erhöht werden muss. In Ihrem Fall gehen Sie in die andere Richtung und es kann sein, dass Sie ein wenig vor Gericht stehen. Aktualisieren Sie die Statistiken wöchentlich, und wenn Sie anfangen, die verräterischen Anzeichen abgestandener Statistiken zu erkennen, gehen Sie von dort aus.
Wenn Sie die automatische Aktualisierungsstatistik für Ihre Datenbank verwenden, finden Sie unter dieser Referenz den Schwellenwert für die Aktualisierung der Statistiken.
Kommentare
- Wir erstellen die Indizes einmal pro Woche neu.
- @ Onion-Knight Dann aktualisieren Sie die Statistiken auch einmal pro Woche, wenn Sie Ihre Indizes neu erstellen . Dies kann ausreichend sein, wenn Sie ‚ eine pauschale Indexwiederherstellung in der gesamten Datenbank durchführen.
Antwort
Wann werden Statistiken aktualisiert?
genau dann, wenn Statistik für automatische Aktualisierung ist für Ihre Anforderungen nicht gut genug. Ich meine, wenn die automatische Erstellung und automatische Aktualisierung der Statistiken aktiviert ist und Sie einen schlechten Abfrageplan erhalten, weil die Statistiken nicht genau oder aktuell sind, ist es möglicherweise eine gute Idee, die Kontrolle über die Erstellung und Aktualisierung der Statistiken zu haben. Wenn Sie jedoch mit der Leistung Ihres SQL-Servers und den Ausführungszeiten für Abfragen einverstanden sind.
, empfehle ich, die -Update-Statistiken von Ihrem Wartungsplan
Das Aktualisieren von Statistiken ist wichtig und nützlich. 1. Ermöglicht dem SQL Server-Abfrageoptimierer, konsistent gute Abfragepläne zu erstellen und gleichzeitig die Entwicklungs- und Verwaltungskosten niedrig zu halten. 2. Statistiken werden vom Abfrageoptimierer verwendet um die Selektivität von Ausdrücken und damit die Größe der Zwischen- und Endabfrageergebnisse abzuschätzen. 3.Mit guten Statistiken kann der Optimierer die Kosten verschiedener Abfragepläne genau einschätzen und dann einen hochwertigen Plan auswählen.
Wenn Sie Statistiken manuell aktualisieren möchten, sollten Sie zuerst Wenn Statistiken automatisch aktualisiert werden
Wenn das SQL Server-Abfrageoptimierungsprogramm Statistiken für eine bestimmte Spalte in einer Tabelle benötigt, die einer wesentlichen Aktualisierung unterzogen wurde Aktivität seit der letzten Erstellung oder Aktualisierung der Statistiken aktualisiert SQL Server die Statistiken automatisch, indem die Spaltenwerte abgetastet werden (mithilfe der Statistik für die automatische Aktualisierung). Die automatische Aktualisierung der Statistik wird durch Abfrageoptimierung oder durch Ausführung eines kompilierten Plans ausgelöst und umfasst nur eine Teilmenge der Spalten, auf die in der Abfrage verwiesen wird. Statistiken werden vor der Kompilierung der Abfrage aktualisiert, wenn AUTO_UPDATE_STATISTCS_ASYNC deaktiviert ist
von simple-talk Abschnitt 13. Wann wird die automatische Aktualisierung auf Statistiken ausgelöst?
Nachdem Sie wissen, wann Statistiken ausgelöst werden, können Sie entscheiden, wann Statistiken manuell aktualisiert werden sollen.
, um mehr über Statistiken zu erfahren. & Die Auswirkungen auf die Leistung. Ich empfehle BrentOzar und Kimberly in sqlskills sehr gute Blogs & Blogger .