Запросите только требуемый mview от союза - PullRequest
0 голосов
/ 07 февраля 2012

Я материализовал представление, вручную разбитое по месяцам

create materialized view MV_MVNAME_201001 as
select MONTH_ID, AMOUNT, NAME
from TABLE_NAME_201001

201002, 201003, ..., 201112, 2012, 2009

Теперь мне нужен запрос из этих представлений, используйте только необходимые представления.

Возможно ли это без привлечения стороны клиента?

пример запроса

select AMOUNT, NAME
from ( 
    --union all mview
)
where month_id >= 201003
  and month_id <  201101

должен смотреть только на MV_MVNAME_201003 .. MV_MVNAME_201012

1 Ответ

0 голосов
/ 07 февраля 2012

Материализованное представление « материализовано ».Это физическая таблица с данными внутри нее.

Запрос, который создает материализованное представление, используется только при обновлении данных, а не в запросах.

Oracle не знает, откуда поступили данные (в вашем случае - объединение нескольких различныхтаблицы), если вы не укажете это как-нибудь, например - столбец.

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

UDPATE : Теперь я лучше понимаю ваш вопрос, но не могу дать вам лучший ответ.Ваш вопрос не имеет ничего общего с mviews.Mviews могут быть таблицами.Ваша проблема такая же.Вы хотите выбрать только из некоторых таблиц, динамический.Для этого было создано разбиение.Вероятно, старые собаки знают хитрость ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...