Diese SELECT-Anweisung ist mit unserem Produktionsserver verbunden (SQL Server 2008, sehr leistungsfähiger Computer) und dauert 2 Sekunden . Dabei werden alle Felder zurückgespuckt (insgesamt 4 MB Daten).
SELECT TOP (30000) *
FROM person
WITH(NOLOCK);
Von jedem anderen Feld im selben Netzwerk (Verbindung über SQL-Authentifizierung oder Windows-Authentifizierung) dauert dieselbe Abfrage 1 Minute und 8 Sekunden .
Ich teste mit dieser sehr einfachen Aussage, um zu veranschaulichen, dass es sich nicht um ein Indizierungsproblem oder ein abfragebezogenes Problem handelt. (Wir haben momentan Leistungsprobleme bei allen Abfragen ...)
Die Reihen kommen in Stücken und nicht alle auf einmal. Ich erhalte sofort meine ersten Zeilen und warte dann über 1 Minute, bis die Reihenstapel eingehen.
Hier sind die Client-Statistiken der Abfrage, wenn sie von der Remote-Box ausgeführt wird:
Query Profile Statistics
Number of INSERT, DELETE and UPDATE statements 0
Rows affected by INSERT, DELETE, or UPDATE statements 0
Number of SELECT statements 2
Rows returned by SELECT statements 30001
Number of transactions 0
Network Statistics
Number of server roundtrips 3
TDS packets sent from client 3
TDS packets received from server 1216
Bytes sent from client 266
Bytes received from server 4019800
Time Statistics
Client processing time 72441 ms (72 seconds)
Total execution time 72441 ms
Wait time on server replies 0
Wir können sehen, dass die "Client-Verarbeitungszeit" gleich der Gesamtausführungszeit ist.
Weiß jemand, welche Schritte ich unternehmen kann, um zu diagnostizieren, warum die Übertragung der tatsächlichen Daten lange dauert?
Gibt es einen SQL-Konfigurationsparameter, der die Datenübertragungsgeschwindigkeit zwischen Computern einschränkt oder begrenzt?