Нам нужно запускать отчеты в запланированное время суток. Приложение работает 24 часа в сутки, 7 дней в неделю, поэтому нет времени «вне пиковой нагрузки» как такового.
Следовательно, запуск отчетов не должен чрезмерно загружать систему.
Приложение работает на WebSphere v6.1, а база данных - Oracle 10g R2.
В моем распоряжении следующие подходы
- Набор ненормализованных таблиц, предназначенных для отчетности.
- Создание материализованных представлений и использование их для отчетов. Мы можем обновлять просмотры раз в день.
- Мы можем создать другую схему и реплицировать таблицы в реальном времени с помощью Oracle Data Guard.
(1) невозможно из-за некоторых внутренних ограничений, которые у нас есть.
Мне нужно знать, с точки зрения производительности, что лучше: (2) или (3)?
Я слышал от многих людей, что материализованные представления изначально работают хорошо, но по мере увеличения объемов данных производительность становится очень низкой.
Любой человек имеет опыт репликации таблиц на одном сервере БД (но отличается экземплярами или схемами).