【发布时间】:2014-06-25 12:40:12
【问题描述】:
我正在尝试运行包含大约 5000 条记录的报告。 报告包含一个表格,表格中有 1 个分组。
我的存储过程需要 20 秒才能运行,但报告需要大约 3 分钟。 该报告大约有 120 页,每页大约有 30 条记录。
这是报告运行所需的时间还是我遗漏了什么。
将来我将在此报告中包含超过 50,000 条记录。所以,我需要知道是否有什么我可以做的。
我有以下代码将针对每一行中的特定列运行:
Function FormatTimer(ByVal seconds As Object) As Object
Dim retVal As Object
Dim days As Integer
Dim hours As Integer
Dim minutes As Integer
If IsNothing(seconds) Then
retVal = ""
Else
retVal = ""
days = Abs(seconds) \ 86400
seconds = seconds - days * 86400
hours = Abs(seconds) \ 3600
seconds = seconds - hours * 3600
minutes = Abs(seconds) \ 60
seconds = seconds - minutes * 60
If days > 0 Then retVal = days.ToString() + "d "
retVal = retVal + Format(hours, "00") + ":" + Format(minutes, "00") + ":" + Format(seconds, "00")
End If
FormatTimer = retVal
结束函数
当我删除此代码时,我的报告呈现速度更快,几乎 30 秒。 如果我在每一行中都使用这样的函数,它会对性能产生这么大的影响吗?
我的报告中也有 group by,如下所示:
Fields!PatientName.Value & " " & Fields!MRN.Value & " "& Fields!VisitNumber.Value
我还附上了我的报告的外观。
请告诉我可以做什么。
谢谢。
【问题讨论】:
-
只是我的意见,但如果您真的需要创建一个 120 页的报告,请每天重新创建一个存储版本并提供过滤后的报告以供实时查看。我怀疑有人会想要阅读包含实时数据的完整 120 页报告。
标签: sql-server-2008 reporting-services ssrs-2008-r2