2015-09-01 2 views
0

фона:Службы 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 страниц, как я и ожидал. Теперь я задаюсь вопросом, является ли установка этого свойства в положение «ВКЛ» правильным методом для фиксации отчета.

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

Вопросы:

  1. Был ли лучший способ, которым мы должны были решить проблему производительности отчета выше, чем установка READ_COMMITTED_SNAPSHOT к на?
  2. Требуется ли для READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION установить значение true/on, если оно есть?
  3. Неужели кто-нибудь столкнулся с этой проблемой, связанной с панелью навигации в SSRS, и как они смогли решить проблему?

Обновление:

В конечном счете мы должны были Откат установки READ_COMMITTED_SNAPSHOT, так как это вызвало совершенно иную ошибку произойти. Проблема, о которой шла речь выше, также, казалось, прояснилась, без каких-либо проблем, о которых сообщалось два месяца подряд. К сожалению, никто не знает, что вызвало проблему в первую очередь, или то, что могло ее устранить (возможно, аппаратное изменение).

ответ

0

Я предполагаю, что вы изменили эти настройки в исходной базе данных отчетов, а не на сервере SSRS (если они не являются одним и тем же сервером). Изменение настроек READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION может иметь широкий эффект для ваших систем, поэтому это следует делать с осторожностью.См. https://dba.stackexchange.com/questions/5014/what-risks-are-there-if-we-enable-read-committed-snapshot-in-sql-server для возможных проблем, связанных с изменением этих настроек (а также ответа на второй вопрос).

Для меня это похоже на проблему в вашем запросе или запросах отчета, поэтому изменение этих параметров уровня базы данных для решения проблемы производительности в одном отчете, вероятно, слишком велико. Сначала я попытаюсь проанализировать ваши запросы и настроить их (и, возможно, добавить отсутствующую статистику или индексы в исходную базу данных), прежде чем изменять параметры управления версиями строк.

Что касается проблемы с навигационной панелью, возможно, изменения, внесенные в управление версиями строк, означают, что SSRS не может вычислить количество страниц, доступных при начальной загрузке страницы. Однако я не знаю, почему это может произойти.

+0

Мы добавили READ_COMMITTED_SNAPSHOT ON в базу данных SSRS Temp; а не исходную базу данных отчетов; поскольку журнал выполнения показал, что время DataRetrieval было низким, а ReportRendering - слишком высоким. Проблема с навигационной панелью, казалось, прояснилась, когда мы устанавливаем READ_COMMITTED_SNAPSHOT OFF на сервере Dev для тестирования. Тем не менее, мы не можем проверить производительность отчетов в средах с предварительным представлением, потому что одновременные пользователи недоступны в предварительном выпуске. – Russ

+0

В документации служб 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

+0

Натан, спасибо для ссылок. Я просмотрю их и отправлю их также в базу данных. Какова была бы возможная причина для того, чтобы рендеринг отчета казался узким местом в журнале выполнения? Запрос при запуске (или выполнении хранимой процедуры) в ssms возвращается в приемлемое время (~ <10 с); даже при выполнении в течение периода времени, в котором сообщается о проблемах с производительностью. – Russ

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