Если я правильно понимаю, вы хотите получить информацию о том, как создать отчет о балансе. Этот тип анализа обычно сводится к нескольким факторам: параллелизм, производительность и обслуживание. Мои комментарии:
1. Динамический расчет (множество таблиц, сотни тысяч записей)
Запись : таблица запасов
Считывание : таблица запасов
- PROS: лучшая параллелизм / пропускная способность (только одна запись)
- CONS: возможность медленных отчетов (если таблицы растут слишком большими и индексы не поддерживаются)
Этолучший вариант, если у вас много транзакций и вы хотите избежать проблем с блокировкой. Вам не нужно обновлять отдельные таблицы / структуры при обновлении таблицы запасов.
2. Ведение сводной таблицы с помощью триггеров, запускаемых после каждой транзакции
Запись : таблица запасов, сводная таблица
Считывания : сводная таблица
- PROS: быстрые отчеты (если вы допускаете «грязное» чтение)
- CONS: медленные записи, вероятность возникновения проблем с блокировкой
Если у вас малотранзакций, и вы хотите высокую производительность, то это стоит посмотреть. Просто имейте в виду, что вам нужно сделать два ОБНОВЛЕНИЯ, чтобы ваши операции записи заняли больше времени. Если вы можете выполнить «грязное» чтение (то есть получить доступ к сводной таблице без блокировки READ
), то это должно дать вам очень быстрые отчеты.
Другой вариант просмотра - это индексированные (материализованные) представления,которая похожа на гибридную версию двух вариантов выше: Индексированные представления