Представления иногда могут помочь с кэшированием слегка .Основой является то, что
SELECT a.name, b.zipcode
FROM table_a a JOIN table_b b ON a.id = b.id
- это запрос, отличный от
SELECT a.name, b.zipcode
FROM table_b b JOIN table_a a ON a.id = b.id
, даже если они логически идентичны.Если оба отправляются в Oracle, они оба попадают в кеш запросов.[В кеше запросов Oracle хранит запросы, поэтому ему не нужно повторять проверки синтаксиса / разрешений и вычислять путь выполнения запроса.] Имея представление, инкапсулирующее объединение table_a и table_b, меньше вероятность завершения нескольких запросовв кеше, которые логически идентичны.
Это часть более общего принципа «Не повторяйся».Если вы повторяете код, вам нужно повторить тестирование и исправление, и у вас есть больше кода, который может пойти не так.Любой выигрыш в производительности - это бонус.Таким образом, у представлений есть свои преимущества, но производительность не является существенной.