Dalla catena di commenti, sembra che tu stia interpretando le ASYNC_NETWORK_IO
attese per indicare che il problema è legato alla rete. Non lo è (in genere).
Poiché @MartinSmith ha suggerito (due volte) la spiegazione più probabile per questo è SSMS o l'applicazione che stai utilizzando non consuma i risultati così velocemente come SQL Server li sta servendo. Segui uno dei metodi suggeriti per rimuovere il consumo delle righe dalla tua misurazione e otterrai un'immagine vera (r) del throughput massimo di IO:
Nel caso non lo avessi già fatto, dovrai ovviamente DBCC DROPCLEANBUFFERS
assicurarti che i dati vengano effettivamente letti dal disco piuttosto che dalla cache del buffer. Si applicano le solite avvertenze di "solo su test, non farlo in un ambiente live attivo" ecc.
Affina un paio di altri tuoi commenti:
Mentre l'esecuzione di una query che restituisce 9 milioni di righe, l'utilizzo della CPU rimarrà circa il 13% con il 9% attribuibile a sqlserver ... non restituirebbe i risultati più rapidamente di 3 minuti se tutti i dati fossero nella RAM?
Cosa stiamo testando esattamente qui, come e perché? Se la tua query da 9 milioni di righe è diversa da una, SELECT * FROM dbo.SomeTable
allora ci sono 1001 fattori che entrano in gioco, oltre al semplice throughput IO grezzo.
Il tuo Intel I7-3820 è un processore a 4 core. Se la tua query di prova non genera un piano parallelo, sarei sorpreso se tu potessi scaricare oltre il 20% di utilizzo della CPU dal sistema.
I 3 minuti per restituire 9 milioni di righe sono molto sospetti e suggeriscono che non avremo un quadro completo di ciò che i tuoi test. La mia ipotesi sarebbe che questo sia un caso di piano di query non ottimale (non parallelo), pieno di operatori a ciclo nidificato che eseguono il pull di milioni di righe, vale a dire non solo una singola tabella SELECT
per verificare il consumo di I / O.
Suggerisco:
SELECT *
per testare solo IO tramite SQL Server.
- Nuova domanda con il piano di esecuzione della query se si desidera approfondire il motivo per cui non saturare l'IO.