Bekijken versus Gematerialiseerde weergave
Weergaven en gematerialiseerde weergaven (mviews) zijn twee soorten oracle database-objecten. Beide objecten verwijzen naar geselecteerde query's. Deze geselecteerde query's fungeren als virtuele tabellen. Normaal gesproken verwijzen views en mviews naar grote selectiequery's met set joins. Daarom is een van de belangrijkste voordelen van weergaven dat we complexe geselecteerde query's als weergaven kunnen opslaan. Daarom kunnen we de logica achter de geselecteerde query's verbergen voor de eindgebruikers. Wanneer we de complexe SELECT-instructie moeten uitvoeren, hoeven we alleen maar uit te voeren
selecteer * uit viewname
Uitzicht
Zoals eerder vermeld, is weergave een virtuele tabel, die een selectiequery verbergt. Deze geselecteerde query's zijn niet vooraf uitgevoerd. Wanneer we een select-instructie vanuit een view uitvoeren, voert het de select-opdracht uit die zich in de view-hoofdtekst bevindt. Laten we de selecte verklaring van de kijkende instantie aannemen als een zeer complexe uitspraak. Dus wanneer het wordt uitgevoerd, duurt het enige tijd om uit te voeren (relatief meer tijd). Bovendien gebruikt weergave heel weinig ruimte om zichzelf op te slaan. Dat komt omdat het alleen een select statement heeft als inhoud.
Gematerialiseerde weergave (Mview)
Dit is een speciaal soort weergave. Mviews worden gemaakt wanneer we prestatieproblemen hebben met weergaven. Wanneer we een mview maken, voert het zijn geselecteerde query uit en slaat zijn uitvoer op als een snapshot-tabel. Wanneer we gegevens van Mview opvragen, hoeft het zijn SELECT-instructie niet opnieuw uit te voeren. Het geeft de uitvoer van zijn snapshot-tabel. Daarom is de uitvoeringstijd van mview kleiner dan weergave (voor dezelfde selectiestatement). Mviews kunnen echter niet altijd worden gebruikt, omdat het dezelfde uitvoer weergeeft, die wordt opgeslagen als een snapshot-tabel. We zouden de mview moeten vernieuwen om de nieuwste resultaatset te krijgen.
Wat is het verschil tussen Bekijk en Mview? 1. Mview slaat zijn uitvoer altijd op als een momentopnametabel wanneer deze wordt gemaakt, maar de weergave maakt geen tabellen. 2. View heeft geen grote ruimte nodig om de inhoud op te slaan, maar mview heeft relatief veel ruimte nodig dan een weergave om de inhoud op te slaan (als een snapshottabel). 3. Weergave vergt grotere uitvoeringstijd, maar mview kost minder uitvoeringstijd dan weergaven (voor dezelfde selectie-instructie). 4. Mviews moeten worden vernieuwd om de nieuwste gegevens te krijgen, maar weergaven geven altijd de nieuwste gegevens. 5. Het schema heeft nodig "Maak gematerialiseerde weergave" privilege om mviews te maken en voor weergaven, het moet "Maak weergave" voorrecht. 6. Indexen kunnen op mviews worden gemaakt om meer prestaties te verkrijgen, maar indexen kunnen niet op views worden gemaakt. |