Ketika terhubung ke server produksi kami (SQL Server 2008, mesin yang sangat kuat), pernyataan SELECT ini membutuhkan waktu 2 detik , meludahkan kembali semua bidang (total data 4 MB).
SELECT TOP (30000) *
FROM person
WITH(NOLOCK);
Dari kotak lain di jaringan yang sama (menghubungkan menggunakan otentikasi SQL atau Windows Authentication), permintaan yang sama membutuhkan waktu 1 menit, 8 detik .
Saya menguji dengan pernyataan yang sangat sederhana ini untuk menggambarkan bahwa itu bukan masalah pengindeksan atau masalah terkait permintaan. (Kami memiliki masalah kinerja dengan semua permintaan saat ini ...)
Baris datang dalam potongan, dan tidak sekaligus. Saya mendapatkan baris pertama saya secara instan, dan kemudian menunggu lebih dari 1 menit untuk kumpulan baris masuk.
Berikut adalah Statistik Klien dari kueri, ketika dijalankan dari kotak jauh:
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
Kita dapat melihat bahwa "Waktu Pemrosesan Klien" sama dengan total waktu eksekusi.
Adakah yang tahu langkah apa yang bisa saya ambil untuk mendiagnosis mengapa transfer data aktual memakan waktu lama?
Apakah ada parameter konfigurasi SQL yang membatasi atau membatasi kecepatan transfer data antara mesin?