3

我需要从隔夜更新的数据中提取一些管理信息 (MI)。我将使用聚合函数从具有数十万甚至数百万行的表中生成 MI。该信息将显示在网页上。
这里的关键因素是 SQL Server 处理聚合函数的效率。
我面临两种生成数据的选择:

  1. 编写存储的过程/视图以从每次有人访问页面时调用的原始数据生成信息
  2. 创建每天刷新的表并充当 MI 的缓存

最好的方法是什么?

4

2 回答 2

4

如果数据全天没有变化,则在夜间加载期间缓存这些值。这将使检索更快。必要时,我非常喜欢汇总表。在您的情况下,它们是必要的!

由于您拥有 SQL Server,因此您可能想要研究的一件事是 Analysis Services。通过创建多维数据库或多维数据集,所有这些聚合都会自动发生,您可以向下钻取数据并以思考的速度查找数字,而不是尝试编写捕获所有这些数字的报告。花 10 分钟观看它的介绍视频,我想你会真正体会到 SSAS 的强大功能。

于 2009-08-25T11:49:50.580 回答
3

在我看来,Analysis Services Cube 实际上最适合您的问题。可以在数据加载发生后运行多维数据集处理以聚合数据以供以后使用。

但是,您也可以使用索引视图,如果设计正确并与 NO EXPAND 表提示结合使用,可以显着提高性能。

SQL 2005 索引视图

SQL 2008 索引视图

于 2009-08-25T11:52:01.603 回答