фона:Службы Reporting Services 2014 - Navigation Bar отображает 0 из 0
Мы недавно мигрировали в SSRS 2014; наша исходная база данных - SQL Server 2008 R2. Мы столкнулись с некоторыми проблемами с производительностью в отчете, где он просто переставал отвечать на запросы и, в конечном счете, истекал через 30 минут при рендеринге отчета. Просмотр журнала выполнения на сервере отчетов указывает, что время поиска данных невелико, а время рендеринга отчета велико. Решение, которое наш DBA обнаружил через месяц после этой проблемы, заключается в установке READ_COMMITTED_SNAPSHOT ON.
Это, похоже, прояснило очень странную проблему производительности с помощью одного отчета. Этот отчет, казалось бы, зашел в тупик, когда пользователи попытались его создать. Тупик, похоже, находится в базе данных сервера отчетов temp, происходит только при возврате отчета в браузер (IE или Chrome) и не возникает при каждом создании отчета, но может возникать, когда несколько пользователей пытаются создать сообщать о том же сроке. Отчет имеет 3 уровня группировки и возвращает переменное количество строк для введенных параметров.
Этот параметр (READ_COMMITTED_SNAPSHOT), похоже, вызвал вторичную проблему: на панели навигации отчета, где пользователь может перемещаться по страницам отчета, изначально отображает 0 из 0, когда активна «следующая страница», кнопка. Когда пользователь нажимает кнопку «Следующая страница», браузер выполняет обратную связь (например, если бы вы переходили на следующую страницу) и обновлял экран с первой страницы. Теперь на навигационной панели отображается 1 из X.
Все наши серверы SSRS получили READ_COMMITTED_SNAPSHOT ON, поэтому я попросил администратор базы данных обновить мой сервер DEV до OFF. Когда это было сделано, я повторно создал все отчеты (около одной десятки), и каждый из них первоначально отображал 1 из X страниц, как я и ожидал. Теперь я задаюсь вопросом, является ли установка этого свойства в положение «ВКЛ» правильным методом для фиксации отчета.
Я думал о том, будет ли создание моментального снимка отчета хорошим решением, к сожалению, я не думаю, что это так, как у нас есть пользователи, которые имеют различный выбор параметров.
Вопросы:
- Был ли лучший способ, которым мы должны были решить проблему производительности отчета выше, чем установка READ_COMMITTED_SNAPSHOT к на?
- Требуется ли для READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION установить значение true/on, если оно есть?
- Неужели кто-нибудь столкнулся с этой проблемой, связанной с панелью навигации в SSRS, и как они смогли решить проблему?
Обновление:
В конечном счете мы должны были Откат установки READ_COMMITTED_SNAPSHOT, так как это вызвало совершенно иную ошибку произойти. Проблема, о которой шла речь выше, также, казалось, прояснилась, без каких-либо проблем, о которых сообщалось два месяца подряд. К сожалению, никто не знает, что вызвало проблему в первую очередь, или то, что могло ее устранить (возможно, аппаратное изменение).
Мы добавили READ_COMMITTED_SNAPSHOT ON в базу данных SSRS Temp; а не исходную базу данных отчетов; поскольку журнал выполнения показал, что время DataRetrieval было низким, а ReportRendering - слишком высоким. Проблема с навигационной панелью, казалось, прояснилась, когда мы устанавливаем READ_COMMITTED_SNAPSHOT OFF на сервере Dev для тестирования. Тем не менее, мы не можем проверить производительность отчетов в средах с предварительным представлением, потому что одновременные пользователи недоступны в предварительном выпуске. – Russ
В документации служб Reporting Services явно указано, что READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION должны быть установлены как OFF для баз данных сервера отчетов и базы данных сервера отчетов. Изменение этого параметра на ON предоставляет вам неподдерживаемую конфигурацию служб Reporting Services: https://msdn.microsoft.com/en-us/library/ms159093%28v=sql.105%29.aspx – Nathan
Натан, спасибо для ссылок. Я просмотрю их и отправлю их также в базу данных. Какова была бы возможная причина для того, чтобы рендеринг отчета казался узким местом в журнале выполнения? Запрос при запуске (или выполнении хранимой процедуры) в ssms возвращается в приемлемое время (~ <10 с); даже при выполнении в течение периода времени, в котором сообщается о проблемах с производительностью. – Russ