Tak, przydałyby się zapytania, definicje tabelek, ilość danych, execution plan (najlepiej wynik polecenia tkprof), DDL za pomocą którego utworzyłeś MV Generalnie najfajniej byłoby, gdybyś załączył polecenia, za pomocą których moglibyśmy u siebie odtworzyć twoją sytuację (niekoniecznie z dokładnie takimi samymi danymi, ale z podobną ilością, rozkładem, etc.)
Okej to teraz wieksza precyzja: chodzi o tabele people_units w bazie B1 i people_units_mv w bazie B2
MV tworze za pomoca:
CREATE MATERIALIZED VIEW "B2"."PEOPLE_UNITS_MV" ORGANIZATION HEAP PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 6 NEXT 576 MINEXTENTS 1 MAXEXTENTS 45 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" BUILD IMMEDIATE USING INDEX PCTFREE 0 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 6 NEXT 576 MINEXTENTS 1 MAXEXTENTS 45 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" REFRESH FAST ON DEMAND START WITH sysdate+0 NEXT sysdate+10/ (24*60*60) WITH PRIMARY KEY USING DEFAULT LOCAL ROLLBACK SEGMENT DISABLE QUERY REWRITE "PEOPLE_UNITS";
Na obu bazach ma widok students_ru, na B1 z tabeli: create view students_ru as select * from people_units LEFT OUTER JOIN students_people_units_special pus ON (pu.id = pus.people_units_id) where unit_type='R' na B2 z mv: create view students_ru as select * from people_units_mv LEFT OUTER JOINpus ON (pu.id pus.people_units_id) where unit_type='R'
Poniewaz zapytanie i statystyki dosc duza zajma pozwole sobie udostepnic je na stronie: wth.me/mv.txt
Z gory dziekuje za pomoc Pozdrawiam Michal
tabela i materialized view - te same indexy - MV strasznie wolne
Standardowe pytanie: czy masz poprawne statystyki dla zmaterializowanego widoku?
Szczerze mowiac nie wiem jak wyliczyc statystyki dla materialized view. googlowalem, ale nic nie znalazlem. Dla tabeli statystyki sa wyliczone moze tutaj jest pies pogrzebany? Ale wtedy, dlaczego tylko dla tego jednego mv wolniej dziala, a dla innych jest w porzadku.
Pozdrawiam Michal
Standardowe pytanie: czy masz poprawne statystyki dla zmaterializowanego widoku? Szczerze mowiac nie wiem jak wyliczyc statystyki dla materialized view. googlowalem, ale nic nie znalazlem. Dla tabeli statystyki sa wyliczone moze tutaj jest pies pogrzebany? Ale wtedy, dlaczego tylko dla tego jednego mv wolniej dziala, a dla innych jest w porzadku.
Pozdrawiam Michal
michall :
Tak samo jak dla tabeli
DBMS_STATS.gather_table_stats()
REFRESH FAST ON DEMAND START WITH sysdate+0 NEXT sysdate+10/ (24*60*60)
michall napisał:
Jeśli to dobrze wkleiłeś to ten widok odswieza sie co 10 sekund. Naprawde tak chcesz?
Pozdrowienia,