Üretim sunucumuza (SQL Server 2008, çok güçlü bir makine) bağlıyken, bu SELECT ifadesi tüm alanlara (toplamda 4 MB veri) tükürerek 2 saniye sürer .
SELECT TOP (30000) *
FROM person
WITH(NOLOCK);
Aynı ağdaki diğer herhangi bir kutudan (SQL kimlik doğrulaması veya Windows Kimlik Doğrulaması kullanarak bağlanma), aynı sorgu 1 dakika 8 saniye sürer .
Bir dizin oluşturma sorunu veya sorgu ile ilgili bir sorun olmadığını göstermek için bu çok basit bir ifade ile test ediyorum. (Şu anda tüm sorgularda performans sorunlarımız var ...)
Satırlar, bir kerede değil, parçalar halinde gelir. İlk satırlarımı hemen alıyorum ve sonra sıra gruplarının gelmesi için 1 dakikadan fazla bekliyorum.
Uzak kutudan çalıştırıldığında sorgunun İstemci İstatistikleri şunlardır:
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
"Müşteri İşlem Süresinin" toplam yürütme süresine eşit olduğunu görebiliriz.
Gerçek verilerin aktarılmasının neden uzun sürdüğünü teşhis etmek için hangi adımları atabileceğimi bilen var mı?
Makineler arasındaki veri aktarım hızını sınırlayan veya sınırlayan bir SQL yapılandırma parametresi var mı?