Простое существование этих представлений вообще не должно вредить производительности. Однако, как только эти представления начнут использоваться, возможно, что это окажет некоторое негативное влияние на производительность. Oracle пытается «запомнить» план для каждого оператора, который видит, но сравнивает операторы путем сравнения исходного кода (SQL). Ваши тысячи представлений будут именоваться по-разному, поскольку у вас не может быть нескольких представлений с одним и тем же именем, и поэтому при каждом использовании одного из них Oracle придется выполнять полный анализ SQL, даже если это что-то базовый как
SELECT * FROM VIEW_1;
и
SELECT * FROM VIEW_2;
Все эти повторные разборы, безусловно, займут некоторое время.
Чем отличается каждый из этих видов? Я думаю, что было бы хорошей идеей сделать шаг назад и рассмотреть другие возможности. Вопросы, которые я хотел бы задать, включают
- Что здесь должно быть достигнуто?
- Зачем нужны тысячи разных видов?
- Есть ли другой способ выполнить то, что нужно сделать, не создавая все эти представления?
Я не знаю ответов на вопросы 1 и 2, но я вполне уверен, что ответ на вопрос № 3 - «Да».
Удачи.