2017-08-23 56 views
0

我已經構建了一系列參數和數據集用戶指定季節(第一個參數)的SSRS報告。有幾個數據集 - 見下文。SSRS報告 - 動態參數造成可怕的緩慢

首先是一個過程:稱爲LRP_Weekly_Stats返回9個字段(包括位置,EVENTDATA,選項,季節,以及其他幾個

第二數據集拉 - 從一個視圖中的所有分明 - 即被髮送到參數下拉。select distinct season from myview它顯示/只是season返回。

2附加數據集存在它讀取

select distinct location from myview where my season = parameter season 

select distinct option from myview where my season = parameter season 

這些數據集中的每一個分別返回locationoption

enter image description here

爲1個單一數據集,因爲每個5個地點都有各自的關聯的4個選項,並返回被乘以自身的數據,我們無法建造這一點。

數據在我看來是這樣的

Location   option 
------------------------- 
Location1  option1 
Location1  option2 
Location1  option3 
Location1  option4 
Location1  option5 
Location2  option1 
Location2  option2 
Location2  option3 
Location2  option4 
Location3  option1 
Location3  option2 
Location3  option4 
Location3  option5 
etc. 

爲了使該參數,一旦顯示每個位置和參數每個選項1下拉我們做兩個單獨的查詢。

我沒有建立視圖,無法調整它,即使我可以使數據是這樣的每個位置可以有每個選項。

所以我的兩個數據集每個都會返回不同季節的可能位置和/或選項的清單。

在SSRS的參數

報告設立這個樣子的:

enter image description here

所以進來到我的參數的數據是從我的數據集拉。爲三個參數的每一個。位置和option_1和option_2。代碼本身在5秒內運行,但由於所有這些鏈接需要30分鐘以上才能運行報告。這是完全不可接受的(我不能刪除下拉數據,因爲用戶需要它)。

任何有關如何簡化或提高效率的建議。請幫忙。

+0

您是否可以跳過使用視圖和DISTINCT並直接轉到根據數據庫中的位置和選項查找表按季節和選項查詢位置的查詢? – Jesse

+0

不幸的是,我提出訪問這些表的請求,但迄今爲止被拒絕。我必須處理這個視圖,因爲它將來自4個不同數據庫的數據集中到一箇中心位置。 – Elizabeth

+0

由於您能夠編寫專門爲您的報告而創建的存儲過程,因此您不會有太多可以...... :( –

回答

0

根據您對最初問題的評論中的回覆,我認爲問題在於報告過程本身,或者可能是呈現問題。我會看看調整主要報告查詢的性能。如果不知道關於報告架構的更多細節,我恐怕不能更具體。

+0

該過程實際上運行良好 - 它在4秒內運行相同的參數集,報告本身需要30分鐘跑步。考慮到它所看到的數據量(很多數據),這是一個很好的時間。程序本身沒有太多添加/調整 - 但我會編輯票據並將更多代碼/數據集放入其中。 – Elizabeth

+0

從SSRS運行它時,將查詢器跟蹤放入查詢中,並驗證過程性能仍在5秒範圍內 - SSMS中的性能並不總是反映來自SSRS的性能。您可能想要添加一組內部變量以及來自關聯參數的分配,以擊敗SQL Server參數嗅探。 如果連續使用EXACT相同的參數運行報告兩次,它是如何執行的?做這個測試需要SQL Server調用不在圖片中。 – Brian