SSRS - запуск нескольких зависимых параметров из представления SQL.Сохранить RS в памяти - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть 3 параметра, которые пользователь должен выбрать при отображении отчета SSRS.Каждый последующий параметр зависит от ранее выбранного параметра.Набор результатов получается из одного представления SQL.

При выборе первого параметра для набора 2-го параметра требуется 10-15 секунд.То же самое происходит для третьего параметра после выбора второго параметра.Я предполагаю, что это запускает представление каждый раз.Как сохранить результаты в памяти, чтобы не приходилось каждый раз использовать представление SQL для сужения запроса в зависимости от результатов?

Например: enter image description here

Когда для первого параметра выбрано A , показывать только 1 и 2 для выбора 2-го параметра и затем показывать только @ если пользователь выбирает 1 (для 2-го параметра) в 3-м параметре, но без запуска просмотра каждый раз, когда выбирается параметр.

1 Ответ

0 голосов
/ 05 декабря 2018

В вашем наборе данных, который заполняет Доступные значения для параметра 2, должна быть ссылка на параметр 1. Другими словами, параметр 1 должен быть в SQL и отображаться на вкладке «Параметры» для набора данных.Аналогичным образом, параметры 1 и 2 должны быть в наборе данных для параметра 3. При этом SQL для каждого последующего раскрывающегося списка должен выполняться быстрее.Это обычно более эффективно, чем использование фильтров в наборах данных.

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

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

...