У нас очень неприятная проблема в нашей производственной среде.
У нас есть отчет, который иногда очень быстро возвращается, а иногда вообще не возвращается. Когда возникает проблема, отчет будет обрабатываться в течение 15 минут или около того, а затем в браузере отобразится ошибка «Не удается отобразить веб-страницу». Эта проблема носит эпизодический характер и обычно длится несколько дней, затем мы получаем несколько дней очень быстрой обработки, а затем возвращаемся к медленной. Когда отчет работает нормально, мы можем вернуть более 14 000 записей за 10 секунд.
Наша команда обработки данных сообщила, что на серверах SQL ничего не происходило, когда мы видим переход от медленного к быстрому. Нет перестроений индекса, пересчётов статистики и т. Д.
Основной запрос отчета (хранимая процедура) всегда выполняется быстро. Даже когда мы сталкиваемся с проблемой, я могу подключиться к производственной базе данных с тем же пользователем, который использует отчет, и запустить хранимую процедуру с теми же параметрами, и она всегда быстро возвращается. Мы проверили на блокировку, и ничего не происходит.
В отчете довольно много параметров. Я видел сообщения, касающиеся «анализа параметров», поэтому я создал версию отчета без параметров и все еще получаю те же результаты.
В этом отчете нет ничего сложного. Это стол. На уровне отчета не выполняется группировка или фильтрация. Подотчетов нет. В отчете используется интерактивная сортировка.
Отчет может возвращать более 14 тыс. Записей. Общий объем данных для этого составляет около 2 МБ. Но, как я уже говорил ранее, в некоторые дни отчет работает нормально и через несколько секунд вернет даже максимальное количество записей.
В отчете используется общий источник данных, который также используется во многих других отчетах, в которых эта проблема не возникает.
В базе данных отчетов мы видим, что записи добавляются в таблицу RunningJobs для этих запросов отчетов, но после этого мы не видим обработки. Как будто сервер отчетов о них забывает.
В настоящее время мы считаем, что сервер отчетов не работает должным образом, поскольку эти записи в RunningJobs просто находятся там и не обрабатываются.
Кто-нибудь знает, почему работа может находиться в таблице RunningJobs? Мы должны увидеть что-то в файлах журнала сервера отчетов, если эти задания выполняются, верно? Есть ли что-то еще, что мы должны тестировать?
Наш сервер отчетов имеет версию 9.00.3050.00. Мы осуществляем доступ через веб-элемент управления Report Viewer.