2012-01-18 78 views
2

在传统系统中,我试图将触发器附加到表中的所有三个事件。该表包含的值汇总到...聚合... :)使用触发器来更新数据库缓存

对于某些用户,创建此聚合需要一段时间,因为它在几组行上完成了多次。

所以我想要做的是在表上创建一个触发器,触发INSERT,UPDATE,DELETE和“缓存”到另一个表的聚合。因此,显示聚合的Web界面可以从该表中读取。

INSERT和UPDATE触发器工作得很好,并正确插入值。但是,DELETE触发器看起来好像没有触发。计数从不更新删除。这导致我认为在触发器已经运行之后直到才完成行删除。所以触发器实际上运行,但它不会注意到一行被删除...

还是我需要去别的地方看看? :/

回答

1

建议您改用索引视图。

索引视图适合于你需要快速聚集的情况。

对于标准来看,动态建立对于引用视图可以是用于视图 涉及大量行的的复杂处理显著每个查询结果 集的开销,如 聚集大量的数据,或者加入许多行。如果在查询中经常引用这样的视图 ,则可以通过 在视图上创建唯一的聚集索引来提高性能。当在视图上创建唯一聚簇索引 时,结果集存储在数据库 中,就像存储具有聚簇索引的表一样。