VIEW1 IS:
SELECT A, B, C FROM view2
UNION ALL
SELECT A, B, C FROM view3
INNER JOIN TBL5 ON view3.CODE = TBL5.CODE
Столбец C индексируется в исходных таблицах, и когда я выполняю любой из операторов выбора по отдельности, он использует индекс и возвращается во флэш-памяти. Когда я использую представление, оно истекает. У меня сложилось впечатление, что Oracle переписал запросы к представлениям и использовал индексы, где это было полезно, вместо того, чтобы делать SELECT * FROM VIEW1
, а затем применять предикаты после факта.
Что я делаю не так? Приведенные выше примеры представлений освещают проблему, но мои реальные представления объединяют десятки таблиц, поэтому представление действительно необходимо.