1

不确定这是一个 SO 还是一个 ServerFault 问题,所以如果它不在正确的位置,请随时移动:

我有一个带有大型数据库的客户端,其中包含一个在 SQL2008R2 服务器上运行的大约 30-35 百万行的表(该服务器的规格非常高,16 个内核,92 gig ram,RAID 等)。此表可能会加入其他表,但它是多个报告的主要驱动因素。

他们的 SSRS 实例/数据库和查询源数据库都运行在同一个 box/sql 实例上

他们定期从该数据库运行临时报告(经过广泛优化),其中许多最终可能会触及表中的大量数据。查看报表服务器统计信息后,数据获取实际上并不需要那么长时间,但是会返回大量数据并且报表处理需要相当长的时间:处理一些数据可能需要 20-30 分钟较大的报告,可能有数万页(在这些情况下,数据获取不到 10 秒)。

注意:我意识到从来没有真正需要运行 25,000 页,但客户坚持并且不会听理由......关于 Excel 电子表格的东西* FACEPALM! *

目前,他们担心一些偶尔出现的性能问题,罪魁祸首可能是临时报告。

无论如何,我们正在考虑卸载报告处理,因此认为这将是一个理想的机会 - 但在这样做之前,我想知道这会给 SQL 服务器带来多少缓解。

如果我将 SSRS 应用程序和数据库移动到另一个 SQL 主机并远程查询数据(网络条件应该是理想的,因为这是基于数据中心的),我会看到任何性能提升吗?

这主要基于现阶段的猜测,但我认为以下是可能影响性能的因素:

  • 用于将大量行从查询源移动到 RS temp DB 的 I/O
  • 报表服务器处理所有数据时的 CPU 负载

在移动到另一台主机时,我发现 SQL 服务器的这些因素减少了。新服务器将单独负责报告处理(也应该是高规格的),因此希望在处理报告时不会出现争用。

我的假设听起来像是在正确的轨道上吗?还有什么我可能遗漏的可能对性能产生不利影响或提高性能的东西吗?

提前致谢

4

1 回答 1

2

您应该查看事务复制以将数据从主服务器发送到报告服务器上的数据库。直接通过网络查询表只会更慢。

于 2013-09-19T17:08:24.427 回答