多くの異なるテーブルとそれらのテーブルのフィールドの状態に基づいて更新されるデータベース テーブルの 1 つにキャッシュされたフィールドがあります。
これらの各テーブルは、トリガーを介して同じ関数を呼び出します: updateCachedField(basetable_id INTEGER)。updateCachedField 関数は、これらの他のすべてのテーブルに対してクエリを実行し、ベース テーブルの新しいキャッシュ値を計算します。updateCachedField 関数は複雑で、非常にコストがかかります。
単一のトランザクション中に、キャッシュされたフィールドに影響を与える多くのテーブルが変更される可能性があります。そのため、1 つのトランザクション中に updateCachedField 関数が 50 回呼び出される可能性がありますが、異なる basetable_id は 5 つだけです。
これを最適化して updateCachedField 関数が 50 回以上ではなく 5 回しか呼び出されないようにする方法はありますか?