Помогите создать Материал. представления
Vanoo
Дата: 01.03.2007 15:37:19
Есть представление формеруемое запросом:
select distinct msisdn, e.ext_prefix||substr(msisdn, length(e.int_prefix)) ABC
from number_sets, (select int_prefix||'%' int_prefix, ext_prefix from ext_prefix_sets) e
where number_sets.nset_id in
(select distinct nset_nset_id
from phone_histories
where sysdate between start_date and end_date
and subs_subs_id in
(select distinct subs_id
from subscribers
where clnt_clnt_id in
(select distinct clnt_clnt_id
from client_histories
where sysdate between start_date and end_date
and blgr_blgr_id in (1,2, 21,81)
)
)
) and number_sets.msisdn like e.int_prefix (+)
order by msisdn
Последнее время оно стало жутко тормазить... Прочитал в книге, что этому может помочь материализованное представление. Пробую создать следующим кодом:
create materialized view KCC_MSISDN_MVIEW
build immediate
refresh
fast
on commit
enable query rewrite
as
--далее выше приведенный запрос
В ответ получаю:
) and number_sets.msisdn like e.int_prefix (+)
*
ORA-30353: expression not supported for query rewrite
P.S. Oracle 9.0.2 под Виндой
tru55
Дата: 01.03.2007 15:44:44
чтобы представление было refresh fast on commit, оно должно отвечать определенным требования, читай доку
Oracle9i Data Warehousing Guide
10053
Дата: 01.03.2007 15:46:33
а посмотреть описание ошибки религия не позволяет?
Oracle |
ORA-30353 expression not supported for query rewrite
Cause: The select clause referenced UID, USER, ROWNUM, SYSDATE, CURRENT_TIMESTAMP, MAXVALUE, a sequence number, a bind variable, correlation variable, a set result, a trigger return variable, a parallel table queue column, collection iterator, and so on.
Action: Remove the offending expression or disable the REWRITE option on the materialized view. |
Vanoo
Дата: 01.03.2007 15:48:41
Сейчас попробовал поменять на
create materialized view KCC_MSISDN_MVIEW
build immediate
refresh
complete
on demand
enable query rewrite
as
Ни чего не изменилось!!!
Vanoo
Дата: 01.03.2007 15:57:51
10053:
Спасиба, разобрался...
AlexOI
Дата: 01.03.2007 16:06:25
У вас же в запросе sysdate есть. Вам же привели описание ошибки, где прямо написано что sysdate не допускается.
Vanoo
Дата: 01.03.2007 16:07:41
Поспешил радоваться :(
Изментил на следующее
create materialized view KCC_MSISDN_MVIEW
build immediate
refresh
complete
on demand
as
Теперь пишет RA-01031: insufficient privileges
И показывает на талицу number_sets, но такого быть не может так-как я нахожусь под пользователем владельцем этой таблицы, да и запрос без создания представления работает...
tru55
Дата: 01.03.2007 16:13:07
дык, может нет гранта на создание MView
Vanoo
Дата: 01.03.2007 16:14:37
Есть... Его я поставил в первую очередь
Vanoo
Дата: 01.03.2007 16:22:54
Вы были правы...
Чето он не поставился тогда....
Сейчас сделал
grant create materialized view to BIS;
Теперь новая ошибка:
ORA-30372: fine grain access policy conflicts with materialized view