SSRS резкая деградация производительности.
Отчет SSRS использует хранимую процедуру MS SQL. Пока отчет вызываю даже не из Аксыи не из IE, а с помощью MS Visual Studio.
Хранимая процедура создает временную таблицу, заполняет её несколькими запросами из InventTrans. В конце процедуры производится выборка из этой временной таблицы и таблица удаляется.
Первые 2-3 запуска отчета работают в соответствии с теорией (при первом запуске производится построение планов запроса, кэшируется запрос ит.п.), в итоге, первый запуск отрабатывает за 3,5 минуты, второй и третий за две - две с небольшим минуты.
А вот последующие запуски выполняются все медленнее и медленнее. Так 5-6 запуск отрабатывает за 6-8 минут, а десятый вообще вылетает по таймауту. (с одними и теми же параметрами).
Сначала я грешил на сам SSRS и Visual Studio. Но, переписал хранимую процедуру на простой скрипт и получил ту же самую ситуацию: второй-третий запуск работают быстрее, чем первый, а далее резко падает производительность.
После перезапуска сервера MS SQL опять первые запуски работают как положено, а последующие тормозят.
Может быть кто-то сталкивался с таким поведением и знает рецепты?
|