我们有一个“报告数据库”(SQL Server 2008)来执行应用程序数据库和一些其他不同数据库源的简化报告。我们从小开始,所以我们使用简单的视图将数据拉到一起,以便新手SQL编写者可以理解它。我们知道这只会在数据量很小的情况下才能正常工作......
......好吧,它正在快速增长,我们需要确定一个更好的方法。过去的大多数数据都没有变化,但我们需要实时报告。从概念上讲,我想做一些事情,比如每晚将这些视图加载到表中,然后将这些数据与今天数据的视图结合起来 - 也许是对表和今天视图之间的联合的新观点?
我对SQL Server比较陌生,所以我不确定这个设计中需要考虑的问题或考虑因素。欢迎任何意见或建议!
非常感谢!
答案 0 :(得分:4)
如果应用程序的架构与报告架构相同,那么您可以使用:
如果报表服务器中的架构可能与应用程序架构存在一些差异(例如,更多索引),那么您可以考虑transactional replication。
如果您的架构显着不同(如OLAP报告样式架构),那么前进的方法是正确的ETL进程。您可以实现near-real-time ETL。
答案 1 :(得分:1)
查看索引视图:http://msdn.microsoft.com/en-us/library/dd171921(v=sql.100).aspx
从MSDN页面:
使用索引来提高查询性能并不是一个新概念;但是,索引视图提供了使用标准索引无法实现的额外性能优势。索引视图可以通过以下方式提高查询性能:
答案 2 :(得分:1)
报告数据库和夜间更新的概念表明OLAP风格的系统可以作为您的解决方案。在SQL Server世界中,此技术称为SSAS (SQL Server Analysis Services.)