SSRS 报告在预览 Mode/Report 查看器中运行速度较慢

SSRS Report runs slower in Preview Mode/Report Viewer

我正在使用 Visual Studio 2019 并使用 Microsoft Reporting Services Projects Extension v2.6.7。我面临的问题是我有一个处理大约 60k 条记录的报告,该报告很复杂并且有组、重复 headers、数据集过滤器以及 VB 代码。

用于此报表的存储过程 运行 秒不到 10 秒,当报表部署到报表服务器时,报表在不到 2 分钟内完成呈现。但是当我 运行 在预览或 运行 模式(报表查看器)中使用 Visual Studio 相同的报告时,报告 运行s 持续了 17-20 分钟。我使用了 SQL Profiler,发现存储过程执行时间几乎与报表执行时间相同。存储过程旨在处理参数嗅探问题,我没有发现该过程有任何问题。

从报告的角度来看,我尝试了 Keeptogether=false、Interactive size 等可能会影响性能的方法。他们看起来不错。

我也尝试添加 WorkingSetMaximum 来增加内存,但仍然没有成功。与我合作的客户需要将 RDLC 文件集成到他们的应用程序中,并且出于他们自己的原因不想在报表服务器上部署。

如何在 Visual Studio 预览 Mode/Report 查看器(运行 模式)中使我的报告 运行 更快,以便我可以将报告的性能与我在报表服务器中获得的性能。

此外,是否有人可以判断报表呈现在报表服务器与预览模式下的工作方式是否存在差异。

编辑 1 - 报表服务器和数据库在我的笔记本电脑中配置,没有任何不同的配置。

编辑 2 - 我通过 运行ning SQL Profiler 收集的另一个观察结果是,在预览模式下,连接保持打开状态,数据检索时间证明报告 运行 时间合理。两者相同。但是,当我 运行 从同一台机器通过报表管理器生成报表时,程序会在几秒钟内完成,甚至报表呈现速度也会更快。正如我上面提到的,我已经处理了参数嗅探。我现在试图了解 SSRS 引擎处理预览的报告渲染和数据检索的方式以及何时将报告部署到报告服务是否存在差异。

我在 MSDN 中看到了这个问答讨论。我尝试复制它,它通过更改配置文件中 CAS 的信任级别为我提供了修复。但我仍然对 Visual Studio 中的报表查看器的行为方式有疑问。我们在应用程序配置中使用的任何类似设置可用于提高 Visual Studio.

中的开发和测试性能

MSDN Blog

使用现有框架但强制使用 Legacy CAS [代码访问安全] 安全

  1. 在 Winforms 中 <NetFx40_LegacySecurityPolicy enabled="true" />
  2. 在ASP网络申请<trust legacyCasModel="true" level="Full"/>