【发布时间】:2009-03-26 15:11:24
【问题描述】:
我有一个涉及许多相关表的系统。考虑一个标准的类别/产品/订单/客户/订单项目场景。有些表是自引用的(如类别)。这些表都不是特别大(大约 100k 行,估计规模约为 100 万行)。我需要考虑这些数据的很多维度,但必须以近乎实时的方式进行查询。我也不知道特定用户对哪些维度感兴趣——它可以是众多表格中的一个或多个标准。事情可以从
- 给我所有的夹克类别
- 给我所有的夹克类别->上个月在纽约购买的红色派克大衣
- 把所有不是在纽约买的超过 100 美元的东西都给我。
目前我们有一个很长的 SP,它使用“级联数据”方法——我们逐个表,使用为该表指定的任何标准将所有内容过滤到一个临时表中。对于下一个表,我们将当前临时表连接到我们正在使用的任何表,并将新的过滤器集应用到新的临时表中。它可以工作,但可管理性和性能很慢。我需要更好的东西。
我需要一种新的方法来解决这个问题。显然需要 OLAP,可能使用星型模式。这可以实时工作吗?它可以配置为实时工作吗?我应该使用索引视图来创建一组非规范化表吗?我应该将其完全卸载到数据库之外吗?
仅供参考,我们正在使用 Sql Server。
【问题讨论】:
-
实时对您意味着什么?你在做电子游戏吗?如何明确需要 OLAP?
-
我同意 Karl 的观点,这似乎不是实时的,只是如何让它表现得好/快
-
不,这不适用于视频游戏。我的主要观点是我不想等待很长时间来重新计算多维数据集——结果应该出现在插入/更新之后。我认为它需要 OLAP,因为跨表的维度数使得关系查询变得困难。
标签: sql-server database database-design olap