我們的一個Reporting Service服務上部署了比較多的SSRS報表,其中有一個系統的SSRS報表部署后,執行時間相對較長,加之供應商又在asp.net頁面里面嵌套了Reporting Service的報表,使得用戶對報表響應速度非常不滿,于是和幾個同事研究了一番如何定位、優化SSRS報表性能。
案例環境:
操作系統 : Windows Server 2008 R2 Standard SP1
數據庫版本 : SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
現象描述:
綜合了用戶、開發人員那邊反饋的問題后,發現該SSRS服務器上部署的其它系統的報表響應速度非常快,測試了其中幾張報表發現基本在1~3秒內,但是這個系統(模塊)的SSRS報表全部比較慢,基本上都8秒以上。而且是第一次訪問非常慢,如果刷新或第二次訪問非??欤侨绻薷膱蟊鞺RL參數時,也會非常慢。于是我就其中一個報表為例,查看該報表的的執行日志信息,如下所示,我們通過ExecutionLog與Catalog關聯查看報表WF_MarkerRoom_Report的執行記錄。具體細節可以參考一下Reporting Services 執行和跟蹤日志記錄。
USE [ReportServer];
GO
SELECT C.Name AS ReportName
,E.ReportID AS ReportID
,E.UserName AS UserName
,E.Format AS Format
,E.Parameters ASParameters
,E.TimeStart AS TimeStart
,E.TimeEnd AS TimeEnd
,E.TimeDataRetrieval*1.0/1000 AS TimeDataRetrieval
,E.TimePRocessing*1.0/1000 AS TimeProcessing
,E.TimeRendering*1.0/1000 AS TimeRendering
,DATEDIFF(SECOND, TimeStart, TimeEnd)
AS CostTime
新聞熱點
疑難解答