Если бы я сделал предположение, я бы предположил, что фоновая загрузка базы данных с веб-сервера повышает блокировку и вызывает замедление всего процесса. Затем вы берете запрос большого размера и запускаете его, что приводит к конфликту блокировок (и ресурсов).
Я вижу это ВСЕ ВРЕМЯ , когда компании жалуются на проблемы с производительностью своих клиент-серверных приложений при переходе с одного SQL-сервера на кластер. В веб-мире мы сталкиваемся с этими проблемами гораздо раньше.
Решение (чаще всего) для блокировки проблем с одним из следующих:
* Рефакторинг ваших запросов, чтобы они работали лучше (например, сохраняя SCOPE_IDENTITY вместо 5-кратного вызова)
* Используйте оператор NO LOCK везде, где это имеет смысл.
EDIT:
Также попробуйте просмотреть сервер с новой SQL Management Studio 2008 'Activity Monitor' . Вы можете найти его, щелкнув правой кнопкой мыши на своем сервере и выбрав «Монитор активности».
- Перейдите в раздел «Процессы» и посмотрите, сколько процессов «ожидают». Ваше время ожидания должно быть около-0. Если вы видите много материала в разделе «Тип ожидания», опубликуйте снимок экрана, и я могу дать вам представление о том, каков будет следующий шаг.
- Перейдите в раздел Resource Waits и посмотрите, как там выглядят цифры. Ваши официанты всегда должны быть около -0.
- И «Недавние дорогие запросы» - это круто, чтобы узнать, что вы можете сделать, чтобы улучшить свою общую производительность.
Редактировать # 2:
Насколько медленнее это? Кажется, ваша SAN занимает около 10 секунд, но если вы говорите 20 секунд против 360 секунд, то это не будет подходящим, и не будет никаких ожиданий блокировок, поэтому я предполагаю, что я рисую пробел. Если разница между 1 и 10 секундами, значит, это связано с сетью.