Warum ist die SQL Server-E/A so viel langsamer als die Festplattenkapazität?

Warum ist die SQL Server-E/A so viel langsamer als die Festplattenkapazität?

Ich verwende SQL Server 2012 und mache eine einfache SELECT *-Abfrage. Ich kann sehen, dass meine Festplatten-E/A im Leistungsmonitor < 10 MB/s beträgt. Wenn ich jedoch eine Sicherung der Datenbank mache, sehe ich Werte > 200 MB/s.

Warum ist der SQL Server beim Abrufen von Daten für mich so langsam?

Antwort1

Der Grund, warum Sie nur 10 MB/s sehen, ist, dass diese Leistungsindikatoren Daten von einer Sekunde zur nächsten betrachten und nicht einzelne Aktionen innerhalb desselben Zeitrahmens. Ihre Abfrage hat also möglicherweise 10 MB in weniger als einer Sekunde abgerufen, aber das wird im Leistungsmonitor nur als 10 MB/s registriert.

Ein Backup zieht große Datenmengen über die gesamte Bandbreite hinweg, sodass es die volle Geschwindigkeit der Festplatte registriert. Könnte es Festplatten-E/A für einzelne Aktionen registrieren, würde es wahrscheinlich 200 MB/s oder etwas Ähnliches anzeigen, möglicherweise sogar mehr für kleinere Datenpakete, da die Geschwindigkeit für kleine Pakete fast unmöglich zu messen ist.

Hoffe das hilft.

Antwort2

Es stellte sich heraus, dass alle meine Lesevorgänge aus der Abfrage direkt aus dem Speicher und nicht von der Festplatte kamen. Ich konnte dies feststellen, indem ich vor der Abfrage den folgenden Befehl ausführte:

SET STATISTICS IO ON

Danach habe ich die Abfrage ausgeführt und mir die Statistiken auf der Registerkarte „Nachrichten“ angesehen. Logische Lesevorgänge erfolgen aus dem Speicher, physische Lesevorgänge von der Festplatte.

verwandte Informationen