Создание таблицы итогов SQL - PullRequest
0 голосов
/ 17 мая 2019

То, что я пытаюсь выполнить, - это таблица SQL, которая содержит несколько различных итогов, основанных на 5 других таблицах.Это было бы так, что, когда моему приложению нужны эти итоги, ему не нужно выполнять сумму, так как это довольно большой запрос.

Хотелось бы узнать, есть ли рекомендуемый способ иметь итоговую таблицу, которая постоянно обновляется на основе изменений, внесенных в другие таблицы.Я думал о том, чтобы заменить его индексированным представлением или иметь триггеры для каждой из суммируемых таблиц, но кажется неэффективным перезапускать запрос суммы при каждом обновлении поля.Еще одна вещь, о которой я подумал, - это наличие триггера на обновление, и каждый раз, когда данные меняются, я просто добавляю или удаляю разницу из хранимой суммы.Моя конечная цель - иметь некоторые итоги, которые постоянно обновляются.

В таблице показаны итоги по каждому продукту.(например, общее количество из таблицы 1 + общее количество из таблицы 2)

Если это слишком общее, я могу дать больше подробностей о структуре таблицы.

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Я закончил тем, что поставил их в очередь, когда базовые данные были изменены, и использовал запланированное задание для обновления итогов через регулярный интервал.Мы решили, что компромисс между свежестью данных не стоит пересчитывать итоговую сумму с каждой транзакцией.

0 голосов
/ 17 мая 2019

Добавьте триггер к рассматриваемым таблицам и проверяйте, изменяется ли только соответствующее значение, а не запускайте сумму каждый раз, когда изменяется поле, не относящееся к итоговому значению в вычисляемой таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...