Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp rodinio ir matomumo

Iki šiol mes kalbėjome apie originalias lenteles, saugomas fizinėje formoje duomenų bazėse. Kuriuose mes turime prieigą prie visų lentelių atributų. Ką daryti, jei turime apriboti vartotoją nuo prieigos prie kai kurių lentelės atributų ir leisti pasiekti kitus atributus. Kaip ir administracijos skyriaus sekretorius gali ieškoti darbuotojo lentelės pavadinimo, adreso, pavadinimo, amžiaus ir kitų veiksnių. Tačiau jis neturi būti įgaliotas peržiūrėti ar susipažinti su jokio darbuotojo darbo užmokesčiu.

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ėtiMaterializuotas vaizdas
PagrindinisVaizdas niekada nėra saugomas, jis rodomas tik.Įrengtas vaizdas išsaugomas diske.
NustatykiteVaizdas yra virtualus stalas, sudarytas iš vieno ar kelių pagrindinių lentelių ar vaizdų.Materializuotas vaizdas yra fizinė pagrindinės lentelės kopija.
AtnaujintiRodinys atnaujinamas kiekvieną kartą, kai naudojamas virtualus stalas (vaizdas).Materializuotas vaizdas turi būti atnaujinamas rankiniu būdu arba naudojant trigerius.
GreitisLėtas apdorojimas.Greitas apdorojimas.
Atminties naudojimas„View“ nereikia atminties.Materializuotas vaizdas naudoja atmintį.
SintaksėKurti vaizdą V AsSukurti 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škosCreate 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

  1. 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.
  2. 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.
  3. 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į.
  4. Materializuotas vaizdas reaguoja greičiau nei „View“, nes iš anksto apskaičiuojamas matomas vaizdas.
  5. 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ą.

Top