При подключении к нашему производственному серверу (SQL Server 2008, очень мощный компьютер) этот оператор SELECT занимает 2 секунды , выполняя все поля (всего 4 МБ данных).
SELECT TOP (30000) *
FROM person
WITH(NOLOCK);
Из любого другого блока в той же сети (подключение с использованием проверки подлинности SQL или проверки подлинности Windows) тот же запрос занимает 1 минуту 8 секунд .
Я тестирую это очень простое утверждение, чтобы проиллюстрировать, что это не проблема индексации или проблема, связанная с запросами. (У нас проблемы с производительностью по всем запросам на данный момент ...)
Ряды бывают кусками, а не все сразу. Я получаю свои первые ряды мгновенно, а затем жду более 1 минуты, пока не появятся партии рядов.
Вот клиентская статистика запроса, когда он запускается из удаленного окна:
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
Мы видим, что «Время обработки клиента» равно общему времени выполнения.
Кто-нибудь знает, какие шаги я могу предпринять, чтобы диагностировать, почему передача фактических данных занимает много времени?
Существует ли параметр конфигурации SQL, который ограничивает или ограничивает скорость передачи данных между компьютерами?