如何降低SSRS实例每10秒访问ReportServer数据库的频率?
解决SSRS单实例每10秒重复调用指定存储过程的问题
你修改的PollingInterval是针对报表缓存、订阅这类常规轮询的配置,和你看到的GetCurrentProductInfo、GetAllConfigurationInfo等存储过程无关——这些属于SSRS的扩展部署心跳同步和产品信息检查机制,得调整对应的专属配置项:
调整扩展部署心跳间隔
打开RSReportService.config,找到<ScaleOutDeployment>节点,修改以下参数:<HeartbeatInterval>:默认10秒,改成你需要的时长(比如3600即1小时)<SqlServerNotificationTimeout>:同步调整为相同或更长的数值
修改后重启SSRS服务,这会直接降低AnnounceOrGetKey、GetAnnouncedKey这类扩展同步相关的存储过程调用频率。
关闭或调整产品信息更新检查
GetCurrentProductInfo是用来检测SSRS版本更新的,可在配置文件里修改:- 找到
<Add Key="ProductUpdate" Value="True"/>,改成False直接关闭更新检查; - 或者保留检查,修改
<Add Key="UpdatePollingInterval" Value="86400"/>,改成每天一次(86400秒)。
- 找到
确认配置文件的有效性
重启服务后务必打开RSReportService.config核对修改是否保存:- 注意权限问题:如果是用普通用户编辑,可能没写入权限,得用管理员身份打开编辑器;
- 排查配置文件路径:SSRS可能读取的是其他路径的配置(比如64位系统下的
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer和32位路径的区别)。
单实例下禁用扩展部署检测(可选)
如果确定是单实例部署,可在SSRS配置管理器的「扩展部署」选项卡中,确认是否可以禁用扩展模式的自动检测,避免不必要的心跳请求。
内容的提问来源于stack exchange,提问作者user1161274
相关产品推荐
相关产品推荐

