Недавно начал работать с базой данных, в которой соглашение предназначено для создания представления для каждой таблицы. Если вы предполагаете, что между таблицами и представлениями существует сопоставление "один к одному", мне было интересно, может ли кто-нибудь сказать мне о влиянии производительности на выполнение чего-то подобного. Кстати, это на Oracle.
Производительность таблиц против просмотров
Ответ 1
Предполагая, что вопрос касается не материализованных представлений - действительно зависит от запроса, на котором основан взгляд, и что с ним делается. Иногда предикаты могут быть введены в запрос просмотра оптимизатором. Если нет, то это будет не так хорошо, как против самой таблицы. Представления построены поверх таблиц - почему вы ожидаете, что производительность будет лучше?
Слоистые представления, где вы строите один вид поверх другого, являются плохой практикой, потому что вы не будете знать о проблемах до времени выполнения. Это также менее вероятно, что предикат нажатие будет происходить с многоуровневыми представлениями.
Представления также могут быть обновляемыми - они не являются надежным средством ограничения доступа к ресурсам, если у кого-то есть привилегии INSERT/UPDATE/DELETE в базовых таблицах.
Материализованные представления так же хороши, как и таблицы, но, как известно, ограничивают то, что они поддерживают.
Ответ 2
Вы не объясняете, что делаете в представлениях? 1:1 с таблицами звучит так, как будто вы используете представления больше, чем синонимы, чем представление. IOW, являются представления = "SELECT * FROM table", тогда вы не увидите ни одного удара по производительности, кроме жесткого разбора.
Если вы присоединяетесь к другим таблицам или помещаете в них предложения фильтров, которые предотвращают нажатие предиката, чем когда-либо, вы можете увидеть какой-то серьезный удар.
Ответ 3
Единственная боль, которую я имел с представлениями, - это распределенный запрос по ссылке БД. Локальный оптимизатор получает некоторые подробности о удаленном объекте, но представление не сообщает об индексах, поэтому вы можете получить некоторые кокетные планы.
Я слышал о некоторых местах, которые используют его в качестве стандарта, поскольку они могут легко "переупорядочить" столбцы в представлении. По моему мнению, большая польза от YMMV