Oracle View ограничения - PullRequest
1 голос
/ 22 ноября 2011

Я конвертирую хранимые процедуры sybase в представления оракула. Это то, что они хотят, и это не мой первый выбор. Мой вопрос: Есть ли какие-либо ограничения в взглядах оракула? Общее количество столбцов? Можете ли вы создать индексы для представлений? Поскольку я буду создавать подпредставления и объединять представления в представлениях, есть ли какие-либо ограничения на количество слоев представлений, которые вы можете сделать? Спасибо

Ответы [ 3 ]

4 голосов
/ 22 ноября 2011

Есть ли какие-либо ограничения в представлении оракула? Общее количество столбцов? Есть ли ограничения на количество слоев представлений, которые вы можете сделать

Здесь описано все: http://docs.oracle.com/database/121/REFRN/GUID-685230CF-63F5-4C5A-B8B0-037C566BDA76.htm#REFRN0043

Количество столбцов в представлении имеет те же ограничения, что и количество столбцов в таблице.

Можете ли вы создать индексы для представлений?

Нет, вы не можете.Однако вы можете создать материализованное представление, которое можно проиндексировать

3 голосов
/ 22 ноября 2011

Вы ограничены 1000 столбцами в таблице.Меня бы не шокировало, если бы было такое же ограничение на количество просмотров.Но если вы создаете представление с 1000 столбцами, вы, вероятно, делаете что-то очень неправильное.

Вы не можете создавать индексы для представлений, но вы можете создавать индексы для базовых таблиц, которые могут использовать запросы к представлениям.Вы можете индексировать материализованные представления, поскольку, как следует из названия, они материализуют данные в отдельную структуру.Но тогда вам приходится иметь дело с обновлением материализованного представления при фиксации, которое увеличивает накладные расходы на транзакции, или допускать устаревшие данные и обновлять материализованное представление по некоторому расписанию.

Количество уровней представлений не ограниченовы можете иметь.В зависимости от версии Oracle, сложности представлений и таких вещей, как наличие ограничений, вы можете столкнуться с запросами, которые либо заставляют Oracle выполнять дополнительную работу (т. Е. Объединять дополнительные таблицы в слоях представлений, которых ваш конечный запрос не делает).или которые слишком сложны для оптимизатора, чтобы найти достойный план.

1 голос
/ 22 ноября 2011

Существенных ограничений на сложность представлений нет.

Оптимизатор, основанный на затратах Oracle, выполняет приличную (но непостижимую) работу по выяснению того, как выполнять запросы к представлениям с использованием индексов базовых таблиц.

Если этого недостаточно, вы можете рассмотреть материализованные представления.

Обычный способ выполнения проекта, который вы выполняете, - это заставить работать представления, а затем использовать EXPLAIN PLAN для оптимизации.

...