none
Ressourcenverbrauch SQL Server bei gestoppten Dienst? RRS feed

  • Frage

  • Ich entwickle für mehrere gemeinnützige Jugendverbände eine Datenbank auf Basis des SQL Servers und nutze hierfür unter anderem auch Fahrtzeiten mit dem Zug. Längere Zeit hatte ich eine Entwicklungsumgebung in einer virtuellen Maschine auf Basis von Virtualbox am Laufen. Allerdings war die Prozedur mit Start der VM manchmal etwas hinderlich und darum hatte ich zeitweise den SQL Server als Entwicklungsumgebung einfach auf meinem Laptop laufen.

    Jetzt habe ich wieder einmal mein System neu aufgesetzt und frage mich, was die beste Variante ist - vor allem unter dem Aspekt des Ressourcenverbrauchs. Denn der Dienst des SQL-Servers "frisst" ja auch Kapazitäten, wenn er immer im Hintergrund läuft.

    Was wäre dagegen, wenn der SQL Server zwar installiert ist, alle Dienste aber beendet wurden? Würde das Programm dann komplett 0 Ressourcen brauchen (RAM, CPU) oder gibt es trotzdem noch Komponenten, die nicht einfach deaktiviert werden können? Den Festplattenplatz kann man dabei völlig unbeachtet lassen - denn da ist ausreichend vorhanden. Mir geht es nur um Prozesse, die die Leistung reduzieren.

    Freitag, 15. Januar 2021 13:59

Antworten

  • Hi,

    ich für meinen Teil denke zwar, dass das eine sehr ungewöhnliche und für mich selbst keine praktikable Lösung wäre aber Hey, wenn Du das so machen willst, ist das doch ok :)

    Also grundsätzlich: Stoppe über den SQL Server Konfigurations-Manager und/oder den Dienst-Manager alle relevanten Dienste des SQL Server.

    Das kann man natürlich auch über eine Batchdatei automatisieren. Dafür einfach eine .cmd Datei mit dem folgenden Inhalt erstellen:

    net stop dienstname1
    net stop dienstname2
    ...

    bzw.

    net start dienstname1
    net start dienstname2
    ...

    Empfohlen wird aber, wenn ich mich recht erinnere, die Kontrolle der SQL Dienste über den SQL Server Konfigurations-Manager.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    • Als Antwort markiert Stefaktiv Dienstag, 19. Januar 2021 07:32
    Samstag, 16. Januar 2021 10:46
    Moderator
  • Der "SQL Server-Browser" dient dazu, mit dem Namen des gewünschten Servers die dazu passende Instanz zu finden. Zumal du ja auch unterschiedliche Protokolle für die Verbindung definieren kannst.

    Der SQL Server-Agents kann entfallen, wenn du keine SSIS/SSRS o.ä. Tasks eingerichtet hast, denn ohne diesen gibts keine Ausführungspläne.

    Un zuletzt dient der SQL Full-text Daemon Launcher für die Unterstützung der SQL-Volltextsuche und Indizierung.
    Wenn du also keine Volltextsuche hast, kannst du diesen Dienst auch sparen.

    Allerdings kannst du ja einen entsprechenden Start/Stop aller beteiligten Dienste einrichten.

    • Als Antwort markiert Stefaktiv Dienstag, 19. Januar 2021 07:32
    Dienstag, 19. Januar 2021 06:15

Alle Antworten

  • Es laufen mehrere SQL-Server-Dinste neben dem SQL-Server selber.
    Laut Sysinternals Processexplorer liegen die beim Nichtstun bei CPU ca. 0,01 - 0,02% und Speicher aller SQL-Prozesse wenige 100Mb.

    Ich denke, da gibt es andere Kandidaten die mehr Ressourcen verbrauchen.

    Freitag, 15. Januar 2021 14:54
  • Kann man mit dem Verwaltungstool des SQL Servers nicht auch die zusätzlichen Server-Dienste anhalten? Verbraucht der SQL-Server in diesem Fall gar nichts mehr?
    Freitag, 15. Januar 2021 19:40
  • Kann man mit dem Verwaltungstool des SQL Servers nicht auch die zusätzlichen Server-Dienste anhalten? Verbraucht der SQL-Server in diesem Fall gar nichts mehr?

    Wenn Du sämtliche Dienste und Anwendungen stoppst, werden keine Ressourcen verbraten.

    Aber warum sollte man das tun? Wenn Du alles stoppst, kannst Du es auch weglassen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 15. Januar 2021 19:42
    Moderator
  • Ziel wäre, dass ich den SQL Server mit der Entwicklungsumgebung zwar installiert habe - die Dienste aber nur dann starte, wenn ich beispielsweise im Zug sitze und programmiere. Die restliche Zeit wird der SQL Server stillgelegt und verbraucht dann keine Ressourcen.

    Was ich nicht wollen würde wäre, dass trotz beendeter Dienste Teile des SQL-Servers trotzdem noch nennenswert RAM / CPU brauchen. Wenn ich unter den aktiven Diensten im Task-Manager manchmal schaue, dann bin ich doch überrascht, welches Programm mir irgendwelche Update-Checker etc. untergeschoben hat.

    Rein vom Programm- und Installationsumfang ist der SQL-Server ja schon eine größere Hausnummer.

    Freitag, 15. Januar 2021 20:58
  • Hi,

    ich für meinen Teil denke zwar, dass das eine sehr ungewöhnliche und für mich selbst keine praktikable Lösung wäre aber Hey, wenn Du das so machen willst, ist das doch ok :)

    Also grundsätzlich: Stoppe über den SQL Server Konfigurations-Manager und/oder den Dienst-Manager alle relevanten Dienste des SQL Server.

    Das kann man natürlich auch über eine Batchdatei automatisieren. Dafür einfach eine .cmd Datei mit dem folgenden Inhalt erstellen:

    net stop dienstname1
    net stop dienstname2
    ...

    bzw.

    net start dienstname1
    net start dienstname2
    ...

    Empfohlen wird aber, wenn ich mich recht erinnere, die Kontrolle der SQL Dienste über den SQL Server Konfigurations-Manager.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    • Als Antwort markiert Stefaktiv Dienstag, 19. Januar 2021 07:32
    Samstag, 16. Januar 2021 10:46
    Moderator
  • Für den Zugriff auf den SQL-Server reicht eigentlich der Dienst "SQL Server", oder?

    Damit kann "SQL Server-Browser", "SQL Server-Agents" und "SQL Full-text Daemon Launcher" eigentlich beendet bleiben. Wenn ich es richtig sehe, dann dienen diese Dienste ja eher administrativen Tätigkeiten, die in der Entwicklung nicht so relevant sind.

    Montag, 18. Januar 2021 20:26
  • Hi,

    Für den Zugriff auf den SQL-Server reicht eigentlich der Dienst "SQL Server", oder?

    meines Wissens nach Ja. Aber probier es einfach, Du wirst es dann schon recht schnell sehen, ob doch noch was fehlt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 18. Januar 2021 20:45
    Moderator
  • Der "SQL Server-Browser" dient dazu, mit dem Namen des gewünschten Servers die dazu passende Instanz zu finden. Zumal du ja auch unterschiedliche Protokolle für die Verbindung definieren kannst.

    Der SQL Server-Agents kann entfallen, wenn du keine SSIS/SSRS o.ä. Tasks eingerichtet hast, denn ohne diesen gibts keine Ausführungspläne.

    Un zuletzt dient der SQL Full-text Daemon Launcher für die Unterstützung der SQL-Volltextsuche und Indizierung.
    Wenn du also keine Volltextsuche hast, kannst du diesen Dienst auch sparen.

    Allerdings kannst du ja einen entsprechenden Start/Stop aller beteiligten Dienste einrichten.

    • Als Antwort markiert Stefaktiv Dienstag, 19. Januar 2021 07:32
    Dienstag, 19. Januar 2021 06:15