Однією з найбільших переваг використання матеріалізованого виду є те, що Oracle піклується про синхронізацію даних. Якщо у вас є окрема сукупна таблиця, ви несете відповідальність за збереження синхронізованих даних. Це, як правило, вимагає розумної кількості коду та пристойного обсягу тестування, і більшості організацій вдається зробити помилки, які залишають отвори, які спричиняють збір таблиці з синхронізації. Це особливо актуально, коли ви намагаєтеся реалізувати поступові оновлення сукупної таблиці.
Інша основна перевага полягає в тому, що, залежно від налаштувань, Oracle може використовувати перезапис запитів для використання матеріалізованих представлень, коли користувачі видають запити до базових таблиць. Так, наприклад, якщо у вас є купа існуючих звітів проти детальної таблиці, яка створює результати щоденного, місячного та річного підсумків, ви можете створити матеріалізований вигляд на базовій таблиці, який збирає дані на щоденному рівні, і оптимізатор може використовувати цей матеріалізований вигляд для всіх існуючих запитів. Це значно полегшує оптимізацію завантаженості звітів у сховищі даних, не намагаючись перейти і переписати десятки звітів, щоб використовувати нову сукупну таблицю або зіпсувати, DBMS_ADVANCED_REWRITE
щоб змусити власні переписувати запити.
ON DEMAND
це стандартна поведінка оновлення. Матеріалізований вигляд повинен бути створений за допомогоюON COMMIT
. і підтримка матеріалізованого вигляду не є безкоштовною. Це, мабуть, дешевше тригера.