我正在征求关于报告解决方案的建议
我们开发了很多内部项目(.net和sql server)。对于较大的数据库,我们使用业务对象并构建用于报告的Universe,以便分析人员或报表编写者可以构建报表,而开发人员则无需参与。
我们的许多项目都包含重要数据,但数量不足以建立在它们之上的warrent Universe和数据仓库。我们仍然需要根据这些数据构建报告,但我们不希望报告实时数据库,因为这可能会影响应用程序的性能。对于我们的一些项目,我们每晚进行备份/恢复,有效地复制数据库,然后将副本用作报告数据库。没有很多报告经验,我想知道人们已经实施了哪些其他解决方案。
答案 0 :(得分:1)
在这种情况下,我们已将transactional replication从OLTP数据库设置为用于报告目的的辅助数据库。
答案 1 :(得分:0)
如果您运行的是2008,则可以使用资源调控器来限制报表用户在生产数据库服务器上的CPU和内存使用情况。最好的方案是拥有一个专用的报告服务器和数据库,但这可以工作。
答案 2 :(得分:0)
最简单的方法是设置一个服务器,用于报告和复制数据库。针对报告服务器运行报告。
这可能不是非常有效的报告,如果您有大量的报告工作量,可能会出现性能问题。
根据您的报告要求,您可能需要在数据仓库和一套报告之间使用操作数据库副本。更简单,系统特定的扁平化报告结构通常可以相当快速地实施。构建一个基本的ETL过程,通过每晚刷新来填充它,您将有一些可以合理有效地报告的内容。
对于更复杂的分析要求,或者如果您想使用多维数据集,您可能需要咬紧牙关并建立适当的仓库或数据集市。
在后一种情况中,SQL Server附带了一个名为Report Builder的工具(从SQL Server 2005开始),可以将其视为穷人的Business Objects。这可用于为报告数据库提供临时报告功能。但是,由于您无法控制该工具生成的SQL,因此如果您尝试将其与操作数据库中的原始数据结构一起使用,则可能性能很差。从这种工具中获得良好的结果往往需要一个数据库结构化,以便与工具和ETL处理很好地协作,从而擦除数据,使其表现得相当好。