SQL Server中的表/视图/索引视图策略

时间:2011-08-29 13:46:47

标签: sql-server-2008 database-design

我们有一个“报告数据库”(SQL Server 2008)来执行应用程序数据库和一些其他不同数据库源的简化报告。我们从小开始,所以我们使用简单的视图将数据拉到一起,以便新手SQL编写者可以理解它。我们知道这只会在数据量很小的情况下才能正常工作......

......好吧,它正在快速增长,我们需要确定一个更好的方法。过去的大多数数据都没有变化,但我们需要实时报告。从概念上讲,我想做一些事情,比如每晚将这些视图加载到表中,然后将这些数据与今天数据的视图结合起来 - 也许是对表和今天视图之间的联合的新观点?

我对SQL Server比较陌生,所以我不确定这个设计中需要考虑的问题或考虑因素。欢迎任何意见或建议!

非常感谢!

3 个答案:

答案 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.)