Jump to content

SQL Server Performance steigern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich würde gerne die Performance eines MSSQL-Servers steigern. Ich habe festgestellt, dass die IO der Festplatte immer am oberen Bereich liegt. Das Datenbankfile liegt auf einem RAID-5 Verbund und das Logfile auf einem Separaten. Das Datenbankfile hat mittlerweile eine Größe von ~70GB.

Würde es hier etwas bringen, das RAID-5 gegen ein RAID-10 zu tauschen und die Datenbank auf mehrere kleine Files zu verteilen?

Oder, wo wären hier noch Ansatzpunkte zur Analyse?

 

Ich bin leider noch etwas Unerfahren auf diesem Gebiet. Hat mir hier jemand ein paar Tipps?

 

Vielen Dank!

Link zu diesem Kommentar

Moin,

 

grundsätzlich kann ein schnelleres Plattensubsystem eine SQL-Datenbank schon sehr beschleunigen. Die von dir genannten Werte lassen durchaus den Schluss zu, dass die Platten den Server ausbremsen. Es kann aber durchaus noch -zig andere Stellen geben, die eine Datenbank oder eine datenbankbasierende Applikation langsam machen, und nur wenige davon lassen sich durch Hardware-Upgrades lösen.

 

Von RAID5 auf RAID10 umzusteigen, kann etwas bringen. Sofern deine Datenbank nicht viel größer wird, könntest du bei der angegebenen Größe durchaus auch über SSD nachdenken.

 

Ob das allerdings wirklich dein Problem löst, lässt sich ohne eine intensive Analyse nicht vorhersagen.

 

Gruß, Nils

Link zu diesem Kommentar

Könnte sein, weil die Platten dann immer wieder auf entferntere/verteilte Speicherblöcke springen müssen.

 

Ich kann nur aus Erfahrung sagen, dass der Unterschied zwischen einer klassischen Festplatte und einer SSD enorm ist. Das Gedöns mit dem Defragmentieren kann man sich dann auch sparen.

Wenn Geld da ist, kann ich dir die Investition nur ans Herz legen, zumal deine Database nicht wirklich riesig ist.

bearbeitet von Davidxy
Link zu diesem Kommentar

"Abnutzung" entsteht nur durch die Schreibvorgänge. Die Lesevoränge belasten eine SSD nicht. Geht man von einer Schreibmenge von etwa 40 GB / Tag aus, so sollte die SSD 22 Jahre halten.

Du kannst davon ausgehen, dass die Lebensdauer auf dem Niveau einer herkömmlichen Festplatte ist.

 

Man sollte jedoch immer 10-15% Speicherplatz auf den SSD´s freilassen, weil die Performance sonst einbricht. Das brauchen die SSD-Controller für ihre Verwaltungsaufgaben. (Wear-Levelling, TRIM, Garbage Collection).

Sollte man also vor dem Kauf (Festplattengrösse) einkalkulieren.

 

Andere Vorteile sind neben der Geschwindigkeit auch die Geräuschentwicklung (keine, weil keine mechanischen Bauteile), dem geringeren Stromverbrauch und die sehr geringe Wärmeentwicklung.

Keine mechanischen Bauteile die Hitze erzeugen....

bearbeitet von Davidxy
Link zu diesem Kommentar

Keine Sorge: Die Übertragungsraten von SSDs sind deutlich höher, als von Festplatten. Aber das ist nicht der entscheidende Faktor. Bei Datenbanksystemen geht es nicht um linearen Datendurchsatz, sondern um Latenz und Operationen pro Sekunde (IOPS). Was Du wirklich übersiehst, ist die Tatsache, dass bei konventionellen Festplatten die Leistung von der Umdrehungszahl und der zugehörigen Elektronik abhängt. So erreicht selbst eine 15k HDD nur <350 IOPS. Da bei SSDs keine Datenscheiben rotieren, haben sie keine relevante Latenz. Sie können 100.000 IOPS und mehr erreichen. Das ist im Vergleich ein Handwagen zum Ziehen gegen einen Sportwagen. Du bräuchtest hunderte Festplatten, um annähernd die gleiche Leistung wie eine einzelne SSD zu erreichen.

 

Achte nur darauf, dass Du Server-taugliche SSDs samt RAID-Controller einbaust, die auch im RAID TRIM unterstützen und die Partition sauber ausrichten.

bearbeitet von Daniel -MSFT-
Link zu diesem Kommentar

Ich nur nochmals wiederholen: Storage ist wichtig, Optimierungen in der DB sollten aber zuerst ausgereizt werden.

Die Geschwindigkeit  mancher Abfragen lassen sich mit passenden Indizes um ein vielfaches Steigern. Auch die I/O-Rate sinkt durch Indizes da die Anzahl der Full Table Scans reduziert wird. 

Tabellen sollten auch regelmäßig reorganisiert und die Statistiken erneuert werden..  

bearbeitet von zahni
Link zu diesem Kommentar

An dem Design der Datenbank kann ich leider nichts ändern, das gibt mir der Softwarehersteller vor.

Mein Problem ist, dass die Anwender an manchen Tagen sagen, dass das Programm wiedermal sehr langsam ist. Den Terminalserver auf dem die Anwendung läuft konnte ich ausschliessen. Auch von Netzwerkseite her ist, laut unseren Technikern, noch Platz nach oben.

Mir ist dann ebn aufgefallen, dass die IOs die Platte ziemlich an die Grenze bringen.

 

Kann es sein, dass Fragmentierung ein Problem ist? Das Datenbankfile wuchs anfangs immer um einen recht geringen Wert, ich glaube 100mb. Ich habe diesen vor einiger Zeit auf 5GB gestellt. Könnte es sein, dass die Datenbankdatei auf dem Datenträger verteilt ist, und das Performance im IO kostet?

 

wie könnte ich dies korrigieren? gibt es hier eine Möglichkeit die Datei zu "defragmentieren"? genügt es die DB offline zu nehmen und sie dann auf einen anderen Datenträger zu verschieben und dann wieder zurück zu kopieren?

Ich würde erst gerne die Softwarefehler ausschliessen, vor ich neue Hardware beschaffe.

 

Danke!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...