2013-06-26 3 views
0

У нас есть система под управлением Windows Server 2008R2 x64 и SQL Server 2008R2 x64 с установленными/настроенными SSRS. Это общий сервер отчетов, используемый большим числом людей, с некоторыми довольно большими неэффективными базами данных (400-500 гб данных), и эти пользователи используют систему для создания специальных отчетов на основе модели отчетности, которая находится на вершине из вышеупомянутых баз данных. Обратите внимание, что пользователи используют NTLM для входа в систему и идентификации для запуска отчетов.Как предотвратить прокси-таймы с помощью служб отчетов SQL Server

Большинство отчетов являются быстрыми, но если вы используете отчет за 1 или 2 года, данные могут занять некоторое время (5 минут ит). Это нормально для большинства пользователей, однако некоторые пользователи застряли за прокси-сервером, у которого установлен тайм-аут соединения в 2 минуты. Поскольку SSRS 2008R2, похоже, не посылает обратно сигнал «keep-alive» (подтвержденный через wirehark), при запуске одного из этих длинных отчетов прокси-сервер считает, что соединение скончалось, и как таковое он просто сдается и убивает соединение. Это дает пользователю ошибку 401 или 503 и, очевидно, отменяет отчет (некорректная ошибка является известной ошибкой в ​​SSRS, которую Microsoft отказывается исправлять).

Мы получаем много хлопка от пользователя об этом, даже несмотря на то, что это не наша проблема. Поэтому я ищу творческое решение.

До сих пор я придумал:

1) Открывать некоторые еще неизвестные условия для SSRS, которые могут сделать его держать связь жив.
2) установка нашего собственного прокси между пользователями и нашим сервером отчетов, который отправит обратно живое обратно (не уверен, что это сработает, и это немного взломанно, просто творчески мыслить!)
3) переписывание наших отчеты базы данные, чтобы быть более эффективными (да это лучшее решение, но и невероятно дорого)
4) просить эксперт :) :)

у нас есть вызов забронирован с поддержкой Microsoft, чтобы увидеть, если они могут помочь - но могут ли помочь какие-либо специалисты по Stack? Я ценю, что это может быть лучшим вопросом для отказа сервера (и я могу опубликовать его там), но это тоже вопрос развития :)

Спасибо!

ответ

1

Несколько вещей:

A. Для SSRS в целом на этом обслуживание:

Я лично использую Keep Alive услуги, как я считаю, рецикл по умолчанию составляет 12 часов для сервера SSRS. Я использую инструмент, который превратил меня в вызываемый «VisualCron», который может выполнять многие процессы задач автоматически. Вы также можете просто позвонить в службу WCF или аналогично. В основном я знаю, что первый отчет от пользователя в течение дня, как правило, медленный. Обычно вам нужно нажать http: // (servername)/ReportServer, чтобы сохранить его в живых.

B. Для отчета cachine элементов уровня:

Если это не поможет, я хотел бы предложить, возможно, кэширование DataSets, когда это возможно. У некоторых людей есть данные, которые есть на данный момент, но для многих людей это не так. Вы можете создать общий набор данных в SSRS и затем кэшировать его по расписанию. Поэтому, если у вас есть домен, такой как таблицы, которые нужно обновить только один раз в синей луне, поставьте их там. То же самое касается данных, которые ночные или партийные. Если вы являетесь транзакционным магазином, который до сих пор может не помочь, но для предприятий, основанных на пакетной обработке данных, это может значительно помочь.

Вы также можете кэшировать отчеты для своих данных в качестве продолжения этого.В раскрывающемся списке «Управление» для отчета, когда на целевой странице/Отчеты вы можете настроить данные для работы в определенном расписании. Вы также можете установить моментальный снимок, который является расширением этого, поскольку он выполняется с некоторыми параметрами по умолчанию, установленными в расписании, и является копией отчета при его запуске.

Вы упоминаете ASP.NET, поэтому я не уверен, насколько некоторые из них будут работать, если вы делаете это через сайт, который вы настраиваете внутри себя как проход. Но вы можете отправлять или сохранять файлы по расписанию, а также через службу подписки SSRS.

C. Измените порядок хранения данных для отчетности.

Вы можете создать хранилище отчетов для выбора значений уровня элементов запросов. Создайте небольшую базу данных, которая представляет собой лишь несколько последних лет данных и только определенные поля и определенные таблицы. Затем проиндексируйте его до смерти и сообщите об этом. По моему опыту, этот метод будет летать с точки зрения производительности, но для его создания потребуются дополнительные накладные расходы. Как правило, большинство компаний будут скулить по этому поводу, но часто требуется один день для настройки, а затем вы создаете одно задание SSMS, которое делает это всю ночь или пакет SSIS, тогда вы не беспокоитесь об этом. Мне нравится этот метод, поскольку я знаю, что мои данные не сообщаются с производства и изолированы лично.

Смежные вопросы