我有一个涉及许多相关表的系统。考虑一个标准的类别/产品/订单/客户/订单项目场景。有些表是自引用的(如类别)。这些表都不是特别大(大约 100k 行,估计规模约为 100 万行)。我需要考虑这些数据的很多维度,但必须以近乎实时的方式进行查询。我也不知道特定用户对哪些维度感兴趣——它可以是众多表格中的一个或多个标准。事情可以从
- 给我所有的夹克类别
- 给我上个月在纽约购买的夹克 -> 红色派克大衣类别的所有东西
- 给我所有不是在纽约购买的价值超过 100 美元的东西。
目前,我们有一个很长的 SP,它使用“级联数据”方法——我们逐个表,使用为该表指定的任何标准将所有内容过滤到一个临时表中。对于下一个表,我们将当前临时表连接到我们正在使用的任何表,并将一个新的过滤器集应用到一个新的临时表中。它可以工作,但可管理性和性能很慢。我需要更好的东西。
我需要一种新的方法来解决这个问题。显然需要 OLAP,可能使用星型模式。这可以实时工作吗?它可以配置为实时工作吗?我应该使用索引视图来创建一组非规范化表吗?我应该将其完全卸载到数据库之外吗?
仅供参考,我们正在使用 Sql Server。