У меня есть отчет о SSRS, который имеет 14 подзаголовков. Все эти подзаголовки считываются из одной и той же хранимой процедуры, но представляют данные по-разному (из-за разных вычислений). Способ, которым я записал СП, выглядит следующим образом:SSRS - Повторное использование временной таблицы в нескольких наборах данных
IF OBJECT_ID('tempdb.dbo.#blabla') IS NOT NULL
BEGIN DROP TABLE #blabla END
SELECT a,b,c,d,e
INTO #blabla
WHERE a='bla'
IF @type = 1 --report 1
BEGIN
SELECT ....
END
IF @type = 2 --report 2
BEGIN
SELECT .....
END
И так далее для каждого отчета.
Я создаю 3 временных таблицы в начале хранимой процедуры, которые служат для подачи данных, подлежащих преобразованию. Проблема заключается в том, что для каждого суб-отчета таблицы продолжают воссоздавать себя, что заставляет отчет занять много времени, чтобы создать его. Существует ли какое-либо обходное решение, которое может повторно использовать таблицы, созданные в начале хранимой процедуры?
Как часто изменяются данные? Если это делается с ночной периодичностью, возможно, вы могли бы создавать обычные таблицы вместо временных таблиц и помещать данные там в ночной пакет? Затем вместо того, чтобы создавать временные параметры, вы можете увидеть их в этих таблицах. – steenbergh
Это не сделано как процесс ETL, таблицы temp - это просто выдержки из постоянных таблиц (которые являются медицинскими утверждениями, поэтому есть миллионы и миллионы строк). Темпс - это способ минимизировать чтение в постоянных таблицах. Они не могут быть постоянными, поскольку в отчете есть параметры даты. – raltandi