【发布时间】:2016-07-03 13:26:59
【问题描述】:
我正在运行 SSRS 08。我的查询有四个参数(所有 varchars)。我可以通过管理工作室运行查询,它在 10 秒内运行。如果我在 Visual Studio 的查询设计器中运行查询,我将获得相同的性能。
但是...如果我尝试预览报告或在部署报告后实际运行报告,实际报告有时需要 5 分钟以上。我跑了一个跟踪,查询似乎很快就进/出 SQL 服务器端。我怎样才能找到我失去这种性能的地方/原因?到目前为止,我已经尝试/检查了以下内容:
- 报告中没有引用图片
- 在存储过程之外没有分组/排序
- 因为它是一个简单的报告,我用相同的结果重建它(以检查它是否不是报告损坏的问题)。
- 在我执行报告时运行 SQL 跟踪以确保查询没有问题
根据我重写查询以使用变量而不是像这样的参数之前的一些建议
-- ...
-- Note: @Parameter is a varchar(40)
-- ...
declare @Var as varchar(40)
set @var=@parameter
select * from table where fieldvalue=@var
运行跟踪,这在查询端不是问题。
【问题讨论】:
-
您可以运行下面的查询来找出开销在哪里: SELECT Name, TimeDataRetrieval,TimeProcessing,TimeRendering , TimeDataRetrieval+TimeProcessing+TimeRendering AS TotalTime,Format,Parameters,username,TimeStart FROM dbo.ExecutionLog L WITH (NOLOCK) INNER JOIN dbo.Catalog R WITH (NOLOCK) ON L.ReportID = R.ItemID WHERE Name='' -- 更新参数为报表名称 AND Format>'' ORDER BY Name 时间用于查询数据检索、报表处理和渲染。如果所有措施都正常,那么问题出在其他地方,而不是报告服务
-
Execution.Log 的数据库是什么?
标签: performance reporting-services ssrs-2008