it-swarm.com.de

Beschleunigt ein Neustart von SQL Server dies?

Ich habe festgestellt, dass einige Datenbankadministratoren SQL Server sehr häufig neu starten, manchmal sogar nachts. Ich glaube, sie tun es, um Speicherplatz freizugeben oder um Abfragen zu beschleunigen. Ich weiß, dass nach einem Neustart Abfragepläne neu kompiliert werden müssen, aber auch wenn ich mich frage, ob diese Praxis einen Nettovorteil hat.

Stimmt es, dass ein täglicher Neustart von SQL Server die Ausführung beschleunigt?

22
MAK

Ein Neustart des Servers ist wahrscheinlich eines der schädlichsten Dinge für die Leistung. Dies bedeutet, dass Sie einen kalten Cache für Daten, einen kalten Cache für Abfragepläne und alle internen SQL Server-Caches erzwingen. Ganz zu schweigen davon, dass Sie durch das Wegwerfen aller in den DMVs für Betriebsstatistiken gesammelten Statistiken Ihre Chancen verringern, jemals etwas erfolgreich zu untersuchen.

Es gibt keine offizielle Anleitung, die diese Praxis unterstützt. Ich habe noch nie gesehen, dass sie in einer seriösen Arbeit erwähnt wird. Ich habe nie von einem seriösen Experten gehört, der dies jemals als Praxis erwähnt. Tu es nicht.

37
Remus Rusanu

Während die anderen Antworten gut sind, fehlt ihnen ein wichtiges Element: der Windows-Dateicache.

Unter 64-Bit-Windows gibt es keine Obergrenze für den Speicher, den Windows zum Zwischenspeichern von Dateien verwendet. Windows kann Ihr System vollständig entladen, und an diesem Punkt beginnen Sie mit dem Wechseln auf die Festplatte. Es wurde an einigen Stellen dokumentiert:

Durch den Neustart von SQL Server wird SQL gezwungen, Speicherplatz freizugeben, wodurch Windows mehr Speicherplatz erhält und das Paging vorübergehend beendet wird. SQL wird bei einer Speichernutzung nahe Null erneut gestartet und steigt allmählich an. Wenn die Box wieder nicht mehr über genügend Speicher verfügt, hilft der Neustart vorübergehend. Durch einen Neustart des gesamten Betriebssystems erzwingen Sie auch die Verwendung des Windows-Dateicaches.

Die eigentliche Lösung: Beenden Sie das Kopieren von Dateien vom Windows-Server oder begrenzen Sie die Menge des mit dem Dynamic File Cache Service verwendeten Dateicaches, wie in den obigen Blog-Posts dokumentiert.

28
Brent Ozar

Wenn es Abfragen beschleunigt, kann Parameter-Sniffing beteiligt sein. Wenn ein Mistplan zwischengespeichert und auf unangemessene nachfolgende Aufrufe angewendet wird, ermöglicht das Wunder des Neustarts, dass der gemeinsame/korrekte Plan zwischengespeichert wird. Wenn dies der Fall ist, gibt es unendlich bessere Möglichkeiten, das Verhalten zu korrigieren, als andere angegeben haben. Aber bis sie den Neustart der Box beenden, gibt es keine Möglichkeit, eine Ursachenanalyse durchzuführen.

11
billinkc

Sie sollten SQL Server nur dann neu starten, wenn Sie die Diensteigenschaften geändert oder Startspuren festgelegt haben, die sofort wirksam werden sollen.

Da @RemusRusanu viele Punkte angegeben hat, werden viele Caches gelöscht und veranlasst SQL Server, viele unnötige Startarbeiten auszuführen.

Es hört sich so an, als wäre dieser Server kein dedizierter SQL Server/Datenbankserver. Es wird empfohlen, dass ein Produktionsdatenbankserver nur einen Zweck hat ... einen Datenbankserver zu sein. In diesem Fall würden Sie genügend Speicher und Ressourcen für das Betriebssystem bereitstellen und alles andere an SQL Server übergeben. Dies würde dazu führen, dass Sie keine anderen Anwendungen oder Serverrollen aushungern.

11
Thomas Stringer

Ich stimme dem Gefühl zu, dass Sie Ihren MSSQL-Server möglicherweise nicht neu starten/neu starten müssen, wenn Sie alles richtig machen.
Für mich gilt dies für das Szenario, in dem jeder kompetent ist und Sie alles reparieren können.

Ich bin kein DBA. Ich bin ein Software-Architekt und ein Teil davon besteht darin, ganze Datenbankschemata von Grund auf neu zu erstellen und leider mit Datenbanken von Drittanbietern zu arbeiten, die ich absolut habe NEIN Kontrolle über.
Die Leute, die eine unserer wichtigsten Datenbanken von Drittanbietern erstellt und verwaltet haben, haben sie kaum funktionsfähig gemacht.

Habe ich erwähnt, dass ich auch kein Sicherheitsexperte oder Netzwerkingenieur bin?

  • Mindestens ein Hauptfenster-Betriebssystem-Update, ein Sicherheits-Update, ein BIOS-Update, ein OS/MSSQL Service Pack oder ein kumulatives MSSQL-Update werden voraussichtlich alle ein oder zwei Monate veröffentlicht.
  • Wenn Sie diese rechtzeitig anwenden, müssen Sie Ihren Server vierteljährlich neu starten/neu starten.
  • Warum sollten Sie Sicherheitsupdates nicht anwenden, selbst wenn Sie in einem Intranet arbeiten?
  • Wenn ich SSL auf unseren PHI-Intranet-Websites haben dürfe, würde ich das tun, weil kein Netzwerk unfehlbar ist. Ich bin paranoid, denke ich.


Für mich lautet die Frage dann: Soll ich SQL Server öfter als alle 3 Monate neu starten?

Das Planen von Neustarts für das Versprechen eines zusätzlichen Zolls Leistung ist wie das Tanzen für Regen.
Vielleicht kommt es, vielleicht nicht, aber Sie wissen nicht genau, warum es geregnet hat.

  • Wenn Sie nach dem Neustart des Servers aufgrund regelmäßiger Wartung einen erheblichen Leistungseinbruch feststellen, sollten Sie untersuchen, warum dies geschieht.
  • Wenn Sie Probleme haben und nicht sicher sind, was diese verursacht, können Sie beim Reduzieren Ihrer Variablen durch Stoppen von Diensten und Jobs einen Speicherverlust (in extremen Fällen wie diesen) feststellen und Ihren Server möglicherweise neu starten/neu starten, wobei einige Dienste aktiviert sind Aus (oder aktivierte Traces) hilft Ihnen, diese anderen Dienste als Ursache auszuschließen.

Ich sage nicht gern, dass Sie [~ # ~] nie [~ # ~] neu starten müssen, um Fehler zu beheben Failover ausgeben oder überprüfen, aber ich habe ein Problem mit der Planung von Neustarts, um zu verhindern, dass ein unbekanntes Leistungsproblem zufällig auftritt.

Die Ausnahme nur besteht darin, dass Sie eine nicht autorisierte Datenbank von Drittanbietern verwalten, bei der ein Neustart jede oder jede zweite Woche die einzige Möglichkeit ist, den Betrieb aufrechtzuerhalten, und Sie diese nicht reparieren oder sogar berühren dürfen.
Selbst dann sollten Sie nach Korrekturen suchen, diese mit dem Eigentümer teilen und die Hölle erwecken, bis sie gelöst sind.

2
MikeTeeVee