2010. szeptember 17., péntek

Oracle Materializált View

Nem tudom ki mennyit tud a materializált VIEW-k használatáról oracle-ben, én ma hatalmas tapasztalatot szereztem ezzel kapcsolatban.
Itt egy link, ahol el lehet olvasni, hogy nagyjából mi is ez, és mire való:
http://download.oracle.com/docs/cd/B10500_01/server.920/a96567/repmview.htm

Namármost, múlt héten egy elég nagy adatbázis táblához (24 millió sor) létrehoztam egyet, hogy amikor egy migrációs cucc fut, szűkítve legyen a halmaz, amiből select-el visszaadunk rekordokat. Tökéletesen működött, a frissítési beállítás NEVER REFRESH volt, vagyis onnantól kezdve hogy létrehoztam, nem frissült a tartalma. Be volt cache-elve magyarul. Jó is volt ez így nekünk.
Ma reggel, mikor a migráció lefutott, átállítottam a frissítési stratégiát ON COMMIT-ra, ami azt jelenti, hogy minden commit esetén frissíti a tartalmat, hisz szinkronizálni kellett a migráció kezdete óta bekerült rekordokat.
Hát ezt nem kellett volna, mert a táblán másodpercenként sok insert és update van, vagyis sok commit, ami miatt folyton frissíteni próbálta a tartalmat. Megfeküdt miatta az egész adatbázis szerver. Ilyenkor nem lehet drop-olni sem, mert fogják a tranzakciók! Csak server restart-al lehetett helyrehozni. Nem vagyok büszke rá, de komoly tapasztalat...

Tehát a tanulság: meggondolatlanul ne hozzunk létre materializált VIEW-kat!

Nincsenek megjegyzések:

Megjegyzés küldése