При запуске сценария SQL (сгенерированного сторонним программным обеспечением) на SQL 2008 R2 это занимает ок.30-60 секунд, чтобы получить таблицу результатов.Изменение сценария вручную приводит к мгновенному возвращению данных.
Нам нужно настроить SQL-сервер таким образом, чтобы он немедленно возвращал исходный скрипт.Оригинальный скрипт выполняется нормально на сервере SQL2005.
В модификациях скрипта я попытался сделать следующее:
- Удалить переменные и заменить действительные значения (измененный скрипт № 1) Скрипт немедленно возвращает правильные результаты.
- Удалите выбор столбца из предложения SELECT и замените его подстановочным знаком '*' (измененный сценарий № 2). Сценарий немедленно возвращает правильные результаты.
Я не понимаю, почему это влияет на SQLсервер таким образом, что он делает.Мой прогноз состоял в том, что он должен что-то делать с планами выполнения / взаимоблокировками, но, вероятно, ошибочным.
Я попытался очистить планы выполнения (DBCC FREEPROCCACHE) и поиграл с настройками взаимоблокировки, настройками параллельного выполнения, но это суетане принесло никаких приемлемых результатов.
Индексы базы данных несколько раз перестраивались.
Мы не можем изменить сам скрипт (и есть еще много с такой же проблемой), поэтому нам нужно найти решение для конфигурациик этой проблеме.
Здесь - это текстовый документ с включенным сценарием SQL и снимками экрана с данными (и временем)
Спасибо