Inhaltsverzeichnis

    SQL-Server für JTL-Wawi optimal einrichten

    Ihre Aufgabe/Ausgangslage

    Sie möchten den SQL-Server optimal einrichten, um die Effizienz und Geschwindigkeit von JTL-Wawi zu maximieren.

    Allgemeines zu Datenbanken

    JTL-Wawi nutzt Microsoft SQL-Datenbanken als zentralen Speicherort für sämtliche Daten. Unsere Software hinterlegt dort Artikel- und Kundeninformationen für den jeweiligen Mandanten der Software aber auch Daten zu Bestellungen, eBay oder Amazon. Alle Wawi-Installationen innerhalb eines Unternehmens müssen auf die gleiche Datenbank zugreifen, weshalb die Datenbank einen entscheidenden Einfluss auf die Gesamtgeschwindigkeit hat. Je mehr Nutzer auf einen möglicherweise langsamen und unsauber aufgesetzten SQL-Server zugreifen, desto länger braucht das System, um die gewünschten Datenanfragen abzuarbeiten.

    Empfohlene Hardware

    Die Wahl der richtigen Hardware ist ein entscheidender Faktor für schnelle Datenzugriffe auf einen SQL-Server.

    Anforderungen für alle SQL-Server-Versionen

    Der Computer, auf dem der MSSQL-Server läuft, sollte im Idealfall immer folgende Hardwarespezifikationen aufweisen:

    • Möglichst leistungsstarker Prozessor: Dieser erlaubt dem System, sämtliche Anfragen in kürzester Zeit abzuarbeiten.
    • Vier verschiedene Festplatten: Da während einer SQL-Abfrage mehrere Lese- oder Schreibaktionen erfolgen können, kann durch die Verwendung mehrerer Festplatten ein deutlich schnellerer Datendurchsatz erzielt werden. Bitte beachten Sie, dass es nicht ausreicht, lediglich vier verschiedene Festplattenpartitionen einzurichten.

    Richten Sie Ihr System im Idealfall wie folgt ein:

    • Installieren Sie auf dem verwendeten Computer neben dem Betriebssystem nur den SQL-Server.
    • Festplatte 1: Installieren Sie den SQL-Server auf derselben Festplatte, auf der auch das Betriebssystem installiert ist.
    • Festplatte 2/3: Speichern Sie sowohl die .mdf-Datei als auch die LOG-Datei auf getrennten Datenträgern.
    • Festplatte 4: Wählen Sie als Speicherort der Temp-DB ebenfalls eine eigene, idealerweise die schnellste Festplatte.

    Zusätzliche Anforderungen für Nutzer der Standard-, Enterprise- oder Web-Edition

    Während Nutzer der Express-Edition damit bereits die empfohlenen Hardware-Anforderungen erfüllen, gibt es für Besitzer der Standard-, Enterprise- oder Web-Edition einige Unterschiede. Da diese mehr als eine CPU pro Abfrage und mehr Arbeitsspeicher nutzen können, empfehlen wir neben den oben genannten Punkten noch die folgenden:

    • CPUs: Verwenden Sie je nach Lizenzmodell idealerweise die maximal mögliche Anzahl an CPUs, um die allgemeine Rechenleistung für die großen Datenbanken zu verbessern.
    • Arbeitsspeicher: Mindestens 8 Gigabyte. So können Sie möglichst viele Daten aus dem schnellen Zwischenspeicher nutzen.

    Sind diese Hardware-Anforderungen erfüllt, ist der erste wichtige Schritt getan. Die Infrastruktur für schnelle Datenbankabfragen ist geschaffen.

    Software anpassen

    Neben der richtigen Hardware sollten Sie auch die Software so einstellen, dass Ihr SQL-Server optimal läuft. Ein SQL-Server kann für maximale Kompatibilität auf verschiedene Versionen gesetzt werden. JTL-Wawi unterstützt ab Version 1.4 alle Varianten zwischen SQL 2014 und 2022. Das Datenbank-Kompatibilitätslevel staffelt sich wie folgt:

    • SQL 2014: 120 (Im Juli 2024 endet der Support. Empfohlen wird SQL-Server2022)
    • SQL 2016: 130
    • SQL 2017: 140
    • SQL 2019: 150
    • SQL 2022: 160
    1. Öffnen Sie zur Einstellung der Kompatibilität das Microsoft SQL Server Management Studio und melden Sie sich mit Ihren Zugangsdaten an. Im Objekt-Explorer legen Sie den Kompatibilitätsgrad für Ihren SQL-Server fest.
    2. Klicken Sie mit der rechten Maustaste auf die Datenbank und wählen Sie im Kontextmenü die Option Eigenschaften. Das Dialogfenster Datenbankeigenschaften öffnet sich.
    1. Klicken Sie auf Optionen. Hier finden Sie die Einstellung des Kompatibilitätsgrades des Servers. Für die bestmögliche Performance setzen Sie Ihren Server auf den tatsächlichen Grad der Version. Wenn Sie beispielsweise SQL 2017 verwenden, sollte der Wert 140 lauten.
    1. Deaktivieren Sie die Optionen Automatisch schließen und Automatisch verkleinern, indem Sie die Option false auswählen. Die Deaktivierung dieser Funktionen optimiert die Leistung des SQL-Servers.

    Ein wichtiger Faktor für bessere Server-Leistung ist die Deaktivierung von Automatisch schließen und Automatisch verkleinern in der Datenbank. Automatisch verkleinern ist permanent bemüht, die .mdf-Datei zu verkleinern. Das Resultat: Der Server ist kontinuierlich mit sich selbst beschäftigt und fragmentiert zusätzlich die Festplatte. Automatisch schließen leert wiederum jedes Mal den Arbeitsspeicher, wenn alle Verbindungen zum Server geschlossen werden. Das klingt zwar im ersten Moment gut, ist es aber leider nicht. Denn viele wichtige Dateien müssen beim Aufbau der nächsten Verbindung wieder in das RAM geladen werden – erneut sinkt die Performanz des Servers.

    1. Klicken Sie auf Dateien. Hier können Sie die Größe der MDF- und LOG-Datei einstellen. Dadurch entsteht auf der Festplatte eine durchgängige Datei. Die automatische Vergrößerung durch das System führt zu einer Defragmentierung. Da dies die Geschwindigkeit negativ beeinflusst, sollten Sie Anfangsgröße und Vergrößerung nicht zu klein wählen. Idealerweise starten Sie mit 10000 MB (Anfangsgröße) und 500 MB (Automatische Vergrößerung).
    2. Klicken Sie für die MDF-Datei in der Spalte Automatische Vergrößerung/Maximale Größe auf die Schaltfläche . Das Dialogfenster Automatische Vergrößerung ändern öffnet sich.
    1. Legen Sie unter Dateivergrößerung eine Größe von 500 MB fest. Stellen Sie die Anfangsgröße im Idealfall direkt auf 10 Gigabyte (=10000 Megabyte). Dies führt dazu, dass Ihre Datenbank diese feste Mindestgröße hat und nur wenn diese erreicht wird, um 500 MB vergrößert wird. Die LOG-Datei sollte initial 20-30% der Größe der .mdf-Datei haben, also 3000 MB (automatische Vergrößerung: 100MB).
    2. Passen Sie auf die gleiche Weise die Dateivergrößerung für die LOG-Datei an. Legen Sie diese auf 100 Megabyte fest.

    Schließen Sie die Datenbankeigenschaften für Ihre Datenbank.

    1. Wiederholen Sie die Schritte 6 bis 8 für die Datenbank Temp-DB. Legen Sie als Anfangsgröße für jede der .mdf- als auch LOG-Datei(en) 100 MB fest. Falls die Temp-DB auf einem eigenen, separaten Laufwerk liegt, setzen Sie die Anfangsgröße auf ca. 80-90% des Gesamtspeicherplatzes. Dadurch vermeiden Sie, dass die Temp-DB während des Produktivbetriebes vergrößert werden muss.

    Besondere Einstellungen der verschiedenen SQL-Server-Editionen

    Sowohl die Express-Edition als auch die Standard-, Enterprise- und Web-Versionen haben einige wenige Eigenheiten bei der Einstellung der Software.

    Express-Version

    Nutzer der Express-Version sollten nach den oben genannten Schritten noch den Arbeitsspeicher auf 1 Gigabyte beschränken, um die Auslagerung von größeren Dateien auf die Festplatte einzuschränken. Dies geschieht ebenfalls im Microsoft SQL Server Management Studio.

    1. Klicken Sie dazu im Objekt-Explorer mit der rechten Maustaste auf den Server und wählen Sie Eigenschaften. Es öffnet sich das Dialogfenster Servereigenschaften.
    2. Wechseln Sie in die Registerkarte Arbeitsspeicher.

    Standard-, Enterprise- und Web-Version

    Falls Sie die Standard-, Enterprise- oder Web-Version verwenden, treffen Sie nach den oben genannten Schritten folgende Einstellungen:

    1. Legen Sie für jeden vorhandenen CPU-Kern eine weitere .mdf-Datei in der Temp-DB an. Diese Datei muss dieselbe Größe haben wie die erste Datei. Da die CPUs parallel arbeiten können, verteilt sich der Zugriff auf die verschiedenen Temp-DB-Dateien. Achten Sie darauf, dass alle .mdf-Einzeldateien der Temp-DB eine identische Anfangsgröße und Vergrößerung haben, damit diese vom System wechselseitig genutzt werden.
    • Klicken Sie dazu im Microsoft SQL Server Management Studio im Objekt-Explorer unter Datenbanken > Systemdatenbanken mit der rechten Maustaste auf die TempDB und wählen Sie Eigenschaften.
    • Wechseln Sie in die Registerkarte Dateien.
    • Klicken Sie auf Hinzufügen.
    1. Begrenzen Sie den Arbeitsspeicher auf 80% des tatsächlich vorhandenen Arbeitsspeichers. Dadurch bleiben dem Betriebssystem genug Ressourcen, dass keine Performance-Einbußen entstehen. Laufen weitere Anwendungen auf dem DB-Server, ist eine stärkere Einschränkung auf 60-70% angebracht.
    • Klicken Sie dazu im Microsoft SQL Server Management Studio mit der rechten Maustaste auf den Server und wählen Sie Eigenschaften.
    • Wechseln Sie in die Registerkarte Arbeitsspeicher.
    • Treffen Sie die entsprechende Einstellung unter Maximaler Arbeitsspeicher. Achten Sie hier unbedingt auf die richtige Einheit: Megabyte (Umrechnung 1GB = 1024 MB).
    1. Begrenzen Sie die maximale Anzahl an parallel arbeitenden CPUs. Nutzen Sie mehr als 4, raten wir zu der Variante Hälfte der Menge an CPUs -1. Wer also 8 CPUs im Einsatz hat, sollte maximal 3 parallel nutzen. Für 4 und weniger CPUs ist der parallele Einsatz von 2 Kernen ideal. Sie legen mit dieser Definition lediglich die Menge der CPU-Kerne fest, die gleichzeitig an derselben Abfrage arbeiten. So bleibt Ihren Prozessoren genug Leistung, um neben großen Datenbankabfragen für mehr als einen Prozessor auch weiterhin andere Aufgaben und Abfragen mit der restlichen Kapazität zu bearbeiten.
    • Klicken Sie dazu im Microsoft SQL Server Management Studio mit der rechten Maustaste auf den Server und wählen Sie Eigenschaften.
    • Wechseln Sie in die Registerkarte Erweitert.
    • Geben Sie den gewünschten Wert unter Max. Grad an Parallelität ein.

    Mit diesen Einstellungen sollte Ihre Datenbank bedeutend flüssiger mit jeglicher Art von Abfragen umgehen können. Um diesen Status auch längerfristig beizubehalten, sollten Sie die Ratschläge im Blog-Eintrag Tipps zur SQL-Server-Wartung beachten.

    Weiterführende Informationen im JTL-Blog

    Noch mehr Informationen wie Sie Ihre SQL-Datenbank optimal einrichten und die Server warten, um eine optimale Wawi-Performance zu gewährleisten, erhalten Sie in unserem Blog:

    SQL-Datenbank optimal einrichten

    Tipps zur Server-Wartung