Tokiais atvejais turime sugebėti sukurti virtualų stalą, kuris gali rodyti tik reikiamus atributus iš lentelės. Tai įmanoma per „View and Materialized View“, kurį aptarsime šiame straipsnyje. Taip pat aptarsime skirtumus tarp peržiūros ir materializuoto „View“ su žemiau pateikto palyginimo diagramos pagalba:
Palyginimo diagrama
Palyginimo pagrindas | Žiūrėti | Materializuotas vaizdas |
---|---|---|
Pagrindinis | Vaizdas niekada nėra saugomas, jis rodomas tik. | Įrengtas vaizdas išsaugomas diske. |
Nustatykite | Vaizdas yra virtualus stalas, sudarytas iš vieno ar kelių pagrindinių lentelių ar vaizdų. | Materializuotas vaizdas yra fizinė pagrindinės lentelės kopija. |
Atnaujinti | Rodinys atnaujinamas kiekvieną kartą, kai naudojamas virtualus stalas (vaizdas). | Materializuotas vaizdas turi būti atnaujinamas rankiniu būdu arba naudojant trigerius. |
Greitis | Lėtas apdorojimas. | Greitas apdorojimas. |
Atminties naudojimas | „View“ nereikia atminties. | Materializuotas vaizdas naudoja atmintį. |
Sintaksė | Kurti vaizdą V As | Sukurti materializuotą vaizdą V Build [sąlyga] Atnaujinti [sąlyga] On [Trigger] As |
Vaizdo apibrėžimas
Vaizdas yra virtualus stalas, sukurtas naudojant komandą „ Sukurti vaizdą“ . Šioje virtualioje lentelėje yra duomenys, gauti iš užklausos išraiškos komandoje „Sukurti vaizdą“. Vaizdas gali būti sukurtas iš vieno ar kelių pagrindinių lentelių ar vaizdų. Peržiūrą galima paklausti, pvz., Užklausai pagal pradines bazines lenteles.
Tai nėra ta, kad rodinys yra išankstinis ir saugomas diske, o rodinys skaičiuojamas kiekvieną kartą, kai jis naudojamas ar pasiekiamas. Kai rodomas vaizdas, užklausos išraiška komandoje „Kurti vaizdą“ vykdoma tuo konkrečiu momentu. Taigi, jūs visada gaunate atnaujintus duomenis rodinyje.
Jei atnaujinate bet kurį turinį „View“, jis atsispindi pradinėje lentelėje ir, jei buvo padaryti pakeitimai pradinėje bazinėje lentelėje, tai atspindėtų jos rodinį. Tačiau tai leidžia „View“ vaizdui atlikti lėčiau . Pavyzdžiui, vaizdas sudaromas iš dviejų ar daugiau lentelių prisijungimo. Tokiu atveju jūs turite mokėti laiko, kad išspręstumėte prisijungimus kiekvieną kartą, kai naudojamas vaizdas.
Tačiau jis turi tam tikrų privalumų, pavyzdžiui, nereikalauja saugojimo vietos . Galite sukurti pritaikytą sudėtingos duomenų bazės vaizdą. Galite apriboti vartotojui prieigą prie slaptos informacijos duomenų bazėje. Sumažina užklausų sudėtingumą, gaunant duomenis iš kelių lentelių į vieną individualų vaizdą.
Dabar pažiūrėkime į „View“ sintaksę
Kurti vaizdą V As
Prisiminti visus rodinius negalima atnaujinti. Kaip „View“, sukurtas naudojant DISTINCT sąlygą, „ Group By“ nuostata, CHECK apribojimas (jei pažeidžiami apribojimai), „ Read-only“ parinktis negali būti atnaujinta.
Materializuoto vaizdo apibrėžimas
Materializuotas vaizdas yra originalių bazinių lentelių fizinė kopija . Materializuotas rodinys yra tarsi originalaus pagrindo lentelių momentinė nuotrauka arba nuotrauka . Kaip ir „View“, jis taip pat turi duomenis, gautus iš užklausos išraiškos „ Create Materialized View“ komandoje.
Tačiau, skirtingai nuo „View“, materializuotas vaizdas yra iš anksto apskaičiuotas ir saugomas diske kaip objektas, ir jie nėra atnaujinami kiekvieną kartą, kai jie naudojami. Vietoj to, materializuotas vaizdas turi būti atnaujinamas rankiniu būdu arba naudojant trigerius . Materializuoto rodinio atnaujinimo procesas vadinamas materializuotu peržiūros palaikymu .
Materializuotas vaizdas reaguoja greičiau, palyginti su rodiniu. Taip yra todėl, kad materializuotas vaizdas yra iš anksto apskaičiuotas, taigi jis neišnaudoja laiko sprendžiant užklausą arba prisijungia užklausoje, kuri sukuria materializuotą vaizdą. Kuris savo ruožtu reaguoja greičiau į užklausą, padarytą materializuotu vaizdu.
Patikrinkime materializuoto rodinio sintaksę:
Sukurti materializuotą vaizdą V
Sukurti [sąlyga] Atnaujinti [tipas]
ON [trigeris]
Kaip
Kai „ Statymo“ sąlyga nusprendžia, kada užpildyti materializuotą vaizdą. Atnaujinimo tipas nusprendžia, kaip atnaujinti materializuotą vaizdą ir spragtukas nusprendžia, kada atnaujinti materializuotą vaizdą.
Duomenų saugykloje dažniausiai naudojami materializuoti vaizdai.
Pagrindiniai skirtumai tarp rodinio ir matomumo
- Pagrindinis skirtumas tarp „View“ ir „Materialized View“ yra tai, kad peržiūros nėra saugomos fiziškai diske. Kita vertus, materializuoti vaizdai saugomi diske.
- Vaizdas gali būti apibrėžiamas kaip virtuali lentelė, sukurta užklausos išraiška. Tačiau materializuotas vaizdas yra fizinės lentelės kopija, nuotrauka arba momentinė nuotrauka.
- Vaizdas visada atnaujinamas, kai užklausos kūrimo rodinys atliekamas kiekvieną kartą, kai naudojamas vaizdas. Kita vertus, „Materializuotas vaizdas“ atnaujinamas rankiniu būdu arba taikant jį.
- Materializuotas vaizdas reaguoja greičiau nei „View“, nes iš anksto apskaičiuojamas matomas vaizdas.
- Materializuotas vaizdas naudoja atmintį, kaip ji saugoma diske, o vaizdas yra tik ekranas, todėl jam nereikia atminties.
Išvada:
Materializuotas vaizdas reaguoja greičiau, palyginti su „View“. Tačiau „View“ visada pateikia vartotojui naujausią informaciją.