我們在virt服務器上使用4Gb的Win 2k3虛擬服務器上安裝了SQL和SSRS 2k5。 (運行的virt服務器該服務器具有> 32GB)關於SQL/SSRS 2k5的報告花費> 10分鐘,查詢<3分鐘
當我們運行比較報告,它調用數據庫A.一個存儲過程的PROC從多個表中提取數據,並從數據庫B視圖
如果我運行探查和監控來電,我看到活動
SQL:BatchStarting SELECT DATABASEPROPERTYEX(DB_NAME(), '整理'), COLLATIONPROPERTY(CONVERT(CHAR, DATABASEPROPERTYEX(DB_NAME() '校對')),'LCID')
然後等待幾分鐘直到proc的實際調用出現。
RPC:完成EXEC sp_executesql的 N'exec [procGetLicenseSales_ALS_Voucher] @CurrentLicenseYear, @CurrentStartDate,@CurrentEndDate, '' 釣魚許可 '', @PreviousLicenseYear, @ OpenLicenseAccounts',N'@ CurrentStartDate 日期時間,@ CurrentEndDate 日期時間,@ CurrentLicenseYear INT,@ PreviousLicenseYear INT,@ OpenLicenseAccounts 爲nvarchar(4000)」,@ CurrentStartDate = '2010-11-01 00:00:00:000',@ CurrentEndDate = 「2010-11- 30 00:00:00:000,@ CurrentLicenseYear = 2010,@ PreviousLicenseYear = 2009,@ OpenLicenseAccounts = NULL
然後更多的時間,而且通常報告超時。如果我讓它在設計器中運行,大約需要20分鐘。
本報告雖然很慢但仍不到10分鐘,但幾個月後仍在運行。
如果將查詢(從探查器捕獲)放入SQL Server Management Studio中,則需要2分鐘8秒的時間才能運行。
數據庫B只是有一些變化和數據複製到它(我們只從數據中讀取,所有新數據來自夜間複製)。
東西已經明顯改變了,但是什麼改變打破了報告?我如何測試以找出SSRS部分爲何永久存在且超時,但查詢在大約2分鐘內運行?
添加:請注意,存儲過程返回18行...任何時間。 (我們只有18個產品需要跟蹤。) 報告採用這18行,並將它們分組並進行一些總結。沒有矩陣,只有一個頁面,非常簡單。
1.你知道,如果你正在運行一個報告(在VS中)在本地機器上具有相同的參數,它會將數據緩存在一個.DATA後綴的文件中? 2.你有沒有檢查RSExecutionLog,看看事情真的需要多長時間?這提供了查詢和渲染時間的細節,甚至有一些免費的報告和一個dtsx包,您可以下載以堅持/查看此數據 – 2011-03-23 10:48:36