View vs Materialized View
Ang Views at materialized view (mviews) ay dalawang uri ng oracle database object. Pareho sa mga bagay na ito ay tumutukoy sa mga piling query. Ang mga piling query na ito ay kumikilos bilang mga virtual na talahanayan. Karaniwang tumutukoy ang mga view at mview sa malalaking piling query, na may hanay ng mga pagsali. Samakatuwid, ang isa sa mga pangunahing bentahe ng mga view ay, maaari tayong mag-imbak ng mga kumplikadong piling query bilang mga view. Samakatuwid, maaari nating itago ang lohika sa likod ng mga piling query mula sa mga end user nito. Kapag kailangan nating isagawa ang kumplikadong select statement, kailangan lang nating i-execute
piliinmula sa viewname
Tingnan
Tulad ng nabanggit kanina, ang view ay isang virtual na talahanayan, na nagtatago ng isang piling query. Ang mga piling query na ito ay hindi paunang naisakatuparan. Kapag nagsagawa kami ng isang piling pahayag mula sa isang view, ipapatupad nito ang piling pahayag na nasa loob ng katawan ng view. Ipagpalagay natin ang piling pahayag ng view body bilang isang napakakomplikadong pahayag. Kaya kapag ito ay naisakatuparan, ito ay tumatagal ng ilang oras upang maisagawa (medyo mas maraming oras). Bilang karagdagan, ang view ay gumagamit ng napakaliit na espasyo upang iimbak ang sarili nito. Iyon ay dahil mayroon lamang itong piling pahayag bilang nilalaman nito.
Materialized View (Mview)
Ito ay isang espesyal na uri ng view. Ginagawa ang mga Mview kapag mayroon kaming mga isyu sa pagganap sa mga view. Kapag gumawa kami ng mview, ipapatupad nito ang piling query nito at iniimbak ang output nito bilang snapshot table. Kapag humiling kami ng data mula sa Mview, hindi nito kailangang muling isagawa ang napiling pahayag nito. Nagbibigay ito ng output mula sa snapshot table nito. Samakatuwid, ang oras ng pagpapatupad ng mview ay mas mababa kaysa sa view (para sa parehong piling pahayag). Gayunpaman, hindi magagamit ang mviews sa lahat ng oras, dahil ipinapakita nito ang parehong output, na nakaimbak bilang isang snapshot table. Dapat nating i-refresh ang mview para makuha ang pinakabagong set ng resulta nito.
Ano ang pagkakaiba ng View at Mview?
1. Palaging iniimbak ng Mview ang output nito bilang snapshot table kapag ginawa ito, ngunit hindi gumagawa ng anumang table ang view.
2. Ang view ay hindi nangangailangan ng malaking espasyo upang maimbak ang nilalaman nito, ngunit ang mview ay nangangailangan ng medyo mas malaking espasyo kaysa sa isang view upang maiimbak ang nilalaman nito (bilang isang snapshot table).
3. Ang view ay tumatagal ng mas malaking oras ng pagpapatupad, ngunit ang mview ay tumatagal ng mas maliit na oras ng pagpapatupad kaysa sa mga view (para sa parehong piling pahayag).
4. Kailangang i-refresh ang Mviews upang makuha ang pinakabagong data nito, ngunit palaging nagbibigay ng pinakabagong data ang mga view.
5. Ang schema ay nangangailangan ng pribilehiyong "gumawa ng materyalized na view" upang lumikha ng mga mview, at para sa mga view, kailangan nito ng pribilehiyong "gumawa ng view."
6. Maaaring gumawa ng mga index sa mga mview para makakuha ng higit na performance, ngunit hindi makakagawa ng mga index sa mga view.