You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS 2019连接打开耗时过高求助:迁移后报表加载缓慢

SSRS 2019 数据库连接复用配置方案

问题核心原因

SSRS 2012默认依赖ADO.NET连接池的复用逻辑,报表内多次数据集调用可共享同一连接;但2019版本在连接管理策略上有调整,默认情况下报表内的多次数据库调用会重复创建新连接,导致ConnectionOpenTime持续偏高。

可调整的配置项及操作步骤

1. 为连接字符串添加池化参数

检查报表所有数据集的连接字符串,显式添加连接池启用参数,强制复用连接:

Pooling=true;Min Pool Size=5;Max Pool Size=100;
  • Pooling=true:明确开启连接池(默认值为true,但显式设置可规避版本差异导致的默认行为变化)
  • Min Pool Size=5:保持连接池内始终有5个空闲连接,避免每次调用都重新初始化连接
  • Max Pool Size=100:限制连接池最大连接数,防止资源过度占用

2. 修改SSRS服务的全局连接池配置

打开SSRS服务配置文件ReportingServicesService.exe.config(默认路径:C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\bin),找到<system.data>节点,添加或调整连接池参数:

<system.data>
  <settings>
    <add name="DbConnectionPoolTimeout" value="30"/>
    <add name="DbConnectionPoolMaxSize" value="100"/>
  </settings>
</system.data>
  • DbConnectionPoolTimeout:设置连接池中空闲连接的超时时间(单位:秒),避免连接被过早回收
  • DbConnectionPoolMaxSize:全局最大连接池容量,确保报表多次调用能复用已有连接

3. 统一报表内的数据集连接配置

  • 若报表使用多个数据集,确保所有数据集使用完全一致的连接字符串(包括池化参数),SSRS会自动将同配置的请求归入同一连接池
  • 优先使用共享数据集,所有引用该数据集的报表项会共享同一连接上下文,减少连接创建次数

4. 调整SSRS服务内存配置

内存不足可能导致连接池被强制回收,修改rsreportserver.config中的内存相关参数:

<Configuration>
  <Service>
    <MemoryLimit>80</MemoryLimit> <!-- 调整为服务器可用内存的80%左右 -->
    <RecycleTime>720</RecycleTime> <!-- 延长服务回收周期,单位:分钟 -->
  </Service>
</Configuration>

验证方式

修改配置后重启SSRS服务,重新运行报表并查看ExecutionLog3的ConnectionOpenTime字段,确认后续数据库调用是否出现0ms的复用情况。

补充提示

若以上配置无效,需排查报表是否存在不同参数的连接字符串(即使连接同一数据库,字符串参数差异会触发独立连接池),需统一所有数据集的连接字符串配置。

内容的提问来源于stack exchange,提问作者IHopeThisWorks123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 19:32:12