我最近遇到了瓶頸情況,如果我在報表內部保留當前版本的查詢(在報表生成器SSRS 2008中設計),它將生成最多15次的加載時間具有特定參數的報告的分鐘數。此JOIN表示我加入到非索引列的主查詢的子查詢。我們稱這個子查詢爲「單位」。在SSRS Report Builder中查找的性能影響
如果我刪除了「單位」從SQL查詢中的連接,並將其設置爲一個單獨的數據集的報告裏面,使用SSRS查找功能(同SQL的JOIN)將它鏈接到主數據設置(查詢),報告運行平穩,不到一分鐘(約3至5毫秒)。
請記住,當單獨運行時,對於之前花費15分鐘的相同參數運行的子查詢分別運行時間不到5毫秒,但當它連接到主查詢時會導致嚴重的性能問題。
做這種類型的分離有明顯的好處,還是應該進一步調查如何改進查詢?使用查找與提高當前查詢性能的性能優勢/缺點是什麼?
我的擔憂是這是一種情境改善,這不代表長期的解決方案。過去我使用這種替代方法來避免調整查詢,但它並未適得其反,但我並不完全瞭解使用此解決方法的性能影響。
謝謝, 拉杜。
感謝Alan,我試着將數據放入一個臨時表中,它與在報告生成器(Lookup函數)中使用解決方法具有相同的效果。我在過去嘗試過這種方法,但它沒有返回所需的時間,所以我認爲它比Lookup函數更不受歡迎。 –