SQL Server - 用于报告的单独数据库?

Cra*_* HB 20 database-design sql-server

在我们的 SQL Server 上,我们为每个 Web 应用程序都有一个数据库。对于报表,我们使用 Reporting Services,所有报表数据(包括报表参数)都来自存储过程。

存储过程与报表中的数据位于同一数据库中。因此,例如,服务于 Stock 报告的 proc 位于 Stock 数据库中。一些报告显示来自多个数据库的信息,然后 proc 将位于这些源数据库之一中。报告参数从具有商店、员工等数据的企业数据库中的 procs 获取数据。

这意味着所有报告都至少有一个到 Enterprise 数据库的连接和另一个到另一个数据库的连接——有时甚至更多。

我的问题是:将报告过程移动到单独的“报告”数据库中是否有好处。我知道将报告移动到另一台服务器上的好处,我不是在谈论那个——这将在同一台服务器上。

可能影响这一点的事情是:

  • 一份报告有多个数据库连接会影响报告的速度吗?
  • 将报告过程与数据放在一个单独的数据库中,会阻止我们使用索引视图吗?
  • 您是否发现在单独的数据库中管理您的报告更容易/更困难?

请让我知道你的想法。

Con*_*lls 18

答案是:是的,这样做是有好处的。关于操作数据库的报告会占用大量资源,并且会干扰操作系统的性能。请记住,数据库性能受机械约束(磁盘磁头来回移动和旋转延迟,因为我们等待正确的扇区出现在磁头下方)。您有两种广泛的报告策略选择:

  1. 将您的数据库复制到另一台服务器上,并将报告过程移动到它上面。报告从复制的服务器运行。这是最少的工作,可以重用您现有的报告和存储过程。
  2. 构建一个数据仓库,整合来自您的生产系统的数据,并将其转换为更便于报告的形式。如果您有大量的临时统计报告可以从“昨天营业结束”的快照中以可接受的方式完成,那么数据仓库可能是更好的方法。