我有一份關於具有14個子報告的SSRS的報告。所有這些子報表都從相同的存儲過程中讀取,但以不同的方式顯示數據(因爲計算不同)。我已經寫了SP的方式如下: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個臨時表,這些臨時表是爲要轉換的數據提供的表。問題在於,對於每個子報告而言,表格不斷重新創建,導致報告花費很長時間才能創建。是否有任何解決方法可用於重新使用在存儲過程開始時創建的表?
數據多久改變一次?如果這是通過夜間批處理完成的,那麼也許您可以製作常規表格而不是臨時表格,並在晚上批量處理數據?然後讓SP看看這些表格,而不是創建臨時表格。 – steenbergh
這不是作爲一個ETL過程來完成的,臨時表只是永久表(這是醫療聲明,所以有數百萬和數百萬行)的摘錄。臨時工是一種減少對永久表進行讀取的方法。它們不能是永久的,因爲報告具有日期參數。 – raltandi