是否可以创建一个始终与SQL Server保持同步的聚合表?

时间:2014-07-23 07:43:40

标签: sql sql-server aggregate

我使用SQL Server,我有不同的表

TABLE_01
A  |  B  |  D
----------------
1  |  9  |  WW
2  |  2  |  XX
3  |  6  |  YY
4  |  8  |  ZZ

TABLE_02
E  |  F  |  G
----------------
1  |  EE |  WW
2  |  BB |  XX
3  |  CC |  YY
4  |  EF |  ZZ

我想创建一个聚合表,以使KPI始终保持最新状态(目标是在我想​​获得KPI时提高性能)。

TABLE_KPI
KPI1| KPI2 | KPI3
----------------
8   |  121 |  12
6   |   85 |  14
4   |  154 |  15
3   |  105 |  20

例如:KPI1 = 3*SUM(Table_01.A)/SUM(Table_02.E)

这可能吗?我是否想要执行与每个表相关的所有触发器,或者有一种最简单的方法来执行此操作?

1 个答案:

答案 0 :(得分:3)

您可以创建indexed view以获得包含由SQL Server自动更新的物理数据的视图,并在select上具有以上性能。如果您不想使用索引视图,需要在Table_01和Table_02上创建插入,更新和删除触发器并手动管理您的数据(它具有高风险且不建议)。