Gibt es einen Leistungsvorteil beim Platzieren von Transaktionsprotokolldateien auf einem separaten Laufwerk?

9

Es gibt viele Blog-Beiträge und Best-Practice-Artikel, in denen die Vorteile des Platzierens der SQL Server-Datendatei auf einer Festplatte und des Transaktionsprotokolls auf einer anderen hervorgehoben werden. Der angegebene Grund ist, dass die Datenbankdatei zufällige Lese- und Schreibvorgänge ausführt, während das Transaktionsprotokoll nur sequentielle Schreibvorgänge enthält.

Aber was ist, wenn Sie Hunderte von Datenbanken haben? Gibt es einen echten Leistungsvorteil, wenn Hunderte von Transaktionsprotokolldateien auf einer separaten Festplatte abgelegt werden? Wenn mehrere Transaktionsprotokolle geschrieben werden, würde ich denken, dass die Transaktionsprotokollschreibvorgänge genauso zufällig sind wie die Datenbankschreibvorgänge.

8kb
quelle

Antworten:

7

Richtig. Wenn Sie über 100 DBs verfügen, benötigen Sie theoretisch 100 Laufwerke, eines für jedes Protokoll. In der Praxis kümmert man sich zwar nicht um einen solchen Fall, denn wenn Sie über Hunderte von DBs verfügen, erwarten Sie offensichtlich nicht für jede DB eine erstklassige TPC-Leistung . Sie werden wahrscheinlich einige DBs mit hohem Durchsatz und strengen SLAs haben, und Sie könnten sie jeweils auf separaten Spindeln haben, während die vielen SLAs niedrigerer Ebene auf einigen gemeinsam genutzten Festplatten voll sind.

Remus Rusanu
quelle
2

Das Transaktionsprotokoll ist genau das ... ein laufendes Protokoll aller Transaktionen. Als solches füllt es sich kontinuierlich in eine Richtung, bis es markiert und überschrieben oder abgeschnitten und überschrieben wird. Das Überschreiben erfolgt sequentiell.

Betrachten Sie Ihre Datendateien. Ein Kundendatensatz kann eine Bestellung von vor 5 Jahren und eine Bestellung von vor 10 Jahren enthalten. Wenn Sie diese Aufträge löschen (z. B. archivieren Sie Daten an anderer Stelle), haben Sie im aktuellen Protokoll 1 und 2 in der Reihenfolge gelöscht. In Ihren Datendateien haben Sie jedoch Blöcke berührt, die vor 5 und 10 Jahren geschrieben wurden.

Also ist es sicher wichtig :)

Eric Higgins
quelle
2

Wenn Sie das Transaktionsprotokoll selbst auf einer separaten Festplatte ablegen, erhalten Sie eine bessere Leistung als wenn Sie es zusammen mit anderen Daten- / Protokolldateien ablegen. Wenn Sie alle Protokolle auf derselben Festplatte ablegen, führen Sie keine sequentiellen E / A-Vorgänge durch, sondern zufällige E / A-Vorgänge zwischen diesen Protokolldateien.

Stanley Johns
quelle