У меня есть кэшированное поле в одной из таблиц моей базы данных, которое обновляется на основе множества разных таблиц и состояния полей в этих таблицах.
Каждая из этих таблиц вызывает одну и ту же функцию через триггер: updateCachedField(basetable_id INTEGER). Функция updateCachedField запрашивает все эти другие таблицы и вычисляет новое кэшированное значение для базовой таблицы. Функция updateCachedField сложна и требует больших затрат.
Во время одной транзакции многие таблицы, влияющие на кэшированное поле, могут быть изменены. Таким образом, во время одной транзакции функция updateCachedField может быть вызвана 50 раз... но только с 5 различными basetable_id.
Есть ли способ оптимизировать это так, чтобы функция updateCachedField вызывалась только 5 раз вместо 50+?