Aus der Kommentarkette geht hervor, dass Sie ASYNC_NETWORK_IO
Wartezeiten so interpretieren , dass das Problem mit dem Netzwerk zusammenhängt. Es ist (normalerweise) nicht.
Wie @MartinSmith (zweimal) angedeutet hat, ist die wahrscheinlichste Erklärung dafür SSMS oder die von Ihnen verwendete Anwendung, die die Ergebnisse nicht so schnell verbraucht, wie SQL Server sie bereitstellt. Befolgen Sie eine der vorgeschlagenen Methoden, um den Verbrauch der Zeilen aus Ihrer Messung zu entfernen, und Sie erhalten ein echtes (r) Bild des maximalen E / A-Durchsatzes:
Nur für den Fall, dass Sie dies noch nicht getan haben, müssen Sie natürlich DBCC DROPCLEANBUFFERS
sicherstellen, dass die Daten tatsächlich von der Festplatte gelesen werden und nicht vom Puffercache. Es gelten die üblichen Vorbehalte "Nur beim Test, tun Sie dies nicht in einer aktiven Live-Umgebung" usw.
Ein paar Ihrer anderen Kommentare:
Während der Ausführung einer Abfrage, die 9 Millionen Zeilen zurückgibt, bleibt die CPU-Auslastung bei 13%, wobei 9% auf sqlserver zurückzuführen sind. Würden die Ergebnisse nicht schneller als 3 Minuten zurückgegeben, wenn sich alle Daten im RAM befinden?
Was genau testen wir hier, wie und warum? Wenn Ihre 9-Millionen-Zeilen-Abfrage etwas anderes als a SELECT * FROM dbo.SomeTable
ist, spielen 1001 Faktoren eine Rolle, außer nur der rohe E / A-Durchsatz.
Ihr Intel I7-3820 ist ein 4-Kern-Prozessor. Wenn Ihre Testabfrage keinen parallelen Plan generiert, wäre ich überrascht, wenn Sie mehr als 20% der CPU-Auslastung aus dem System herausholen könnten.
Die 3 Minuten, um 9 Millionen Zeilen zurückzugeben, sind sehr verdächtig und deuten darauf hin, dass wir kein vollständiges Bild von Ihren Tests erhalten. Ich würde vermuten, dass dies ein Fall eines suboptimalen (nicht parallelen) Abfrageplans ist, der voll von Nested-Loop-Operatoren ist, die Millionen von Zeilen ziehen, dh nicht nur eine einzige Tabelle SELECT
, um den E / A-Verbrauch zu überprüfen.
Ich schlage vor:
SELECT *
um nur E / A über SQL Server zu testen .
- Neue Frage mit dem Ausführungsplan Ihrer Abfrage, wenn Sie herausfinden möchten, warum die E / A nicht gesättigt ist.