我有一個需要大約2分鐘才能運行的查詢。它在參數或任何方面都不是非常複雜,報告本身並沒有進行任何真正廣泛的處理。基本上只是以一種很好的格式直接輸出數據。 (實際上其中一個報告根本不格式化數據,只是返回一個意圖在excel中操作的扁平表。)爲什麼Reporting Services報告比查詢慢得多?
它不返回大量數據集。
然而,報告需要30分鐘的時間才能運行。
這是什麼原因造成的?
這是針對SQL 2005數據庫的SSRS 2005 btw。
編輯:好的,我發現在報告中加入WITH(NOLOCK)與查詢通過SSMS所花費的時間相同。如果來自報告服務(或本地計算機上的visual studio)的查詢處理方式與從本地計算機上的SSMS來的查詢處理方式相同,爲什麼它們的處理方式會有所不同?我看到在活動監視器中運行SLEEP_WAIT模式幾次查詢,但不被任何東西阻擋...
EDIT2:連接字符串是:
數據源=服務器;初始目錄=數據庫名
只是懷疑,但我懷疑數據源/ ado.net「驅動程序」是問題。我對此有任何其他評論以及我有類似的經歷感興趣。 – Mozy 2010-03-03 23:32:40
您的連接字符串在報表上的數據源的外觀如何? – 2010-03-05 14:03:03
可能相關? http://stackoverflow.com/questions/2283943/fast-query-runs-slow-in-ssrs雖然你的NOLOCK經驗可能不建議。 – 2013-08-12 04:58:17