我有一个托管数据仓库数据库的 SQL Server 2008 R2 数据库服务器。在这台服务器上还安装了 SQL Server Reporting Services,以及它的两个数据库 ReportServer 和 ReportServerTempDB。
出于性能原因,我想将数据仓库数据库和 Reporting Services 分开。我有另一台可用于安装 SSRS 的服务器。两台服务器都是虚拟的,因此它们的规格很容易更改,或者在必要时可以“创建”其他服务器。
我无法理解的是托管 ReportServer 和 ReportServerTempDB 的最佳位置。我可以看到三个选项:
- 将它们留在数据仓库数据库中
- 将它们放在将安装 Reporting Services 的服务器上
- 专门创建另一台服务器来托管这两个数据库。
对于选项 1,我担心将 Reporting Services 与其数据库分开会影响数据仓库服务器,或者会影响报告。对于选项 2,我担心在服务器上安装数据库引擎会影响 Reporting Services 服务器的性能,而对于选项 3,我担心我会浪费资源来创建几乎不会做任何事情的服务器,并且还会通过分离来影响报告Reporting Services 来自其数据库。
我认为我需要的关键信息是了解 Reporting Services 的哪个部分是资源最密集的部分。如果是 Reporting Services 应用程序,那么我可以将数据库留给数据仓库。如果是资源密集型数据库,那么我需要将它们放在 Reporting Services 应用程序中,或者创建一个新服务器。
有人可以解释一下吗?
谢谢!
SSRS Planning a Deployment将是一篇值得阅读的好文章。
您可以在此处专门阅读 SSRS 数据库。正如它所说:
一般来说,具有大量报告要求的您将在一台服务器(共享 SQL Server 实例)上运行 SSRS 数据库,然后在另一台服务器上运行 SSRS 组件。请记住,尽管许可是如何工作的,但您将拥有两台具有这种设置的许可 SQL Server 服务器。我通常会看到报表服务器数据库与数据仓库位于同一台服务器上。我没有看到 SSRS 数据库与数据仓库共享实例上有任何问题。正如文章中所述,它们仅存储 SSRS 的信息(执行日志、计划、报告定义等)。
SSRS 所做的“肉”在于 SSRS 组件服务。SSRS 处理报告请求的数据,然后进行渲染,如果负载很高,所有这些都是资源密集型的。如果它证明独立服务器的合理性,这将取决于您的特定需求。我通常会看到使用报告的应用程序安装在 Web 服务器上的 SSRS。
为了确定我是否需要一个独立的报告服务器,我可能会考虑报告的数量(许多小或许多大)、频率(用于每月报告的内部报告服务器或为外部 Web 应用程序提供用户报告)。您还可以查看开发人员使用的报表设计或标准,如果报表在报表端进行大量数据处理,而不是让数据库引擎来处理。
ReportServer 数据库通常不会增长太多(但请注意 ExecutionLog 的大小),它是 ReportServer 服务可以消耗您的资源。我会把它放在你的数据仓库服务器上,如果你愿意,你可以把它放在一个专用的实例上。