2012-01-18 4 views
2

レガシーシステムでは、テーブルの3つのイベントすべてにトリガーをアタッチしようとしています。テーブルには最大...集計までの値が含まれています:トリガーを使用してdb-cacheを更新する

いくつかのユーザーにとって、この集約の作成には、いくつかの行グループで何度か実行されるため、しばらく時間がかかります。

私がやろうとしているのは、INSERT、UPDATE、DELETEをトリガーし、集約を別のテーブルにキャッシュするトリガーをテーブルに作成することです。したがって、集計を表示するWebインターフェイスはこのテーブルから読み取ることができます。

INSERTトリガーとUPDATEトリガーは正常に機能し、値を正しく挿入します。ただし、DELETEトリガーは発射していないようです。カウントは削除時に決して更新されません。これは、の後に行の削除がまで実行されていないと思うようになりました。トリガは実際には実行されますが、行が削除されていることに気付かない...

または別の場所を探す必要はありますか? :/

答えて

1

代わりにインデックス付きビューを使用することをお勧めします。

インデックス付きビューは、あなたは高速凝集体を必要とする状況に適しています。標準ビューについて

、動的ビューは、行の多数の複雑な処理を伴うビュー にとって重要であることができる参照各クエリの結果 セットを構築するオーバーヘッド、データのような 凝集ロット、または多数の行を結合します。このようなビューが照会で頻繁に参照される である場合は、 ビューで一意のクラスタード・インデックスを作成することで、パフォーマンスを向上させることができます。一意のクラスタ化された インデックスがビュー上に作成されると、クラスタ化インデックスを持つテーブルが格納されているように、結果セットはデータベース に格納されます。

関連する問題