不确定这是SO还是ServerFault问题,所以如果它不在正确的位置,请随时移动:
我有一个拥有大型数据库的客户端,该数据库包含一个在SQL2008R2服务器上运行的行数约为3千万到3千5百万的表(服务器规格相当高,16核,92 gig ram,RAID等)。此表可以加入其他表,但它是多个报告的主要驱动因素。
他们的SSRS实例/数据库和查询源数据库都在同一个box / sql实例上运行
他们经常从这个数据库运行临时报告(已经过广泛的优化),其中许多可能最终会触及表格中的大量数据。在查看报告服务器统计信息后,看起来数据提取实际上并不需要那么长时间,但是返回了大量数据并且报告处理需要花费很长时间:处理一些数据可能需要20-30分钟。较大的报告,可能有数万页(在这些情况下,数据提取时间不到10秒)。
(注意:我意识到从来没有真正需要关闭25,000页,但客户坚持并且不会听取理由......有关Excel电子表格的内容 * < EM>捂脸! * )
目前他们担心偶尔出现的几个性能问题,罪魁祸首可能是临时报告。
我们正在考虑卸载报表处理,所以认为这将是一个理想的机会 - 但在此之前,我想知道这将给SQL服务器带来多大的帮助。
如果我将SSRS应用程序和数据库移动到另一个SQL主机并远程查询数据(网络条件应该是理想的,因为这是基于数据中心的),我会看到任何性能提升吗?
这主要是基于此阶段的猜测,但我发现以下因素可能影响绩效:
在转移到另一台主机时,我发现SQL服务器的这些因素正在减少。新服务器将全权负责报告处理(也应该是高规格),因此希望在处理报告时不会产生争用。
在我的假设中,我是否听起来像是在正确的轨道上?还有什么我可能错过的可能对性能产生负面影响或改善性能的其他内容吗?
提前致谢
答案 0 :(得分:2)
您应该查看事务复制,以便将数据从主服务器发送到报告服务器上的数据库。直接在网络上查询表只会减慢速度。