2012-01-18 80 views
2

在傳統系統中,我試圖將觸發器附加到表中的所有三個事件。該表包含的值彙總到...聚合... :)使用觸發器來更新數據庫緩存

對於某些用戶,創建此聚合需要一段時間,因爲它在幾組行上完成了多次。

所以我想要做的是在表上創建一個觸發器,觸發INSERT,UPDATE,DELETE和「緩存」到另一個表的聚合。因此,顯示聚合的Web界面可以從該表中讀取。

INSERT和UPDATE觸發器工作得很好,並正確插入值。但是,DELETE觸發器看起來好像沒有觸發。計數從不更新刪除。這導致我認爲在觸發器已經運行之後直到才完成行刪除。所以觸發器實際上運行,但它不會注意到一行被刪除...

還是我需要去別的地方看看? :/

回答

1

建議您改用索引視圖。

索引視圖適合於你需要快速聚集的情況。

對於標準來看,動態建立對於引用視圖可以是用於視圖 涉及大量行的的複雜處理顯著每個查詢結果 集的開銷,如 聚集大量的數據,或者加入許多行。如果在查詢中經常引用這樣的視圖 ,則可以通過 在視圖上創建唯一的聚集索引來提高性能。當在視圖上創建唯一聚簇索引 時,結果集存儲在數據庫 中,就像存儲具有聚簇索引的表一樣。