Bekijken versus gematerialiseerde weergave
Views en materialized views (mviews) zijn twee soorten Oracle-databaseobjecten. Beide objecten verwijzen naar selectiequery's. Deze selectiequery's fungeren als virtuele tabellen. Normaal gesproken verwijzen views en mviews naar grote select-query's, die een set joins hebben. Daarom is een van de belangrijkste voordelen van views dat we complexe selectiequery's als views kunnen opslaan. Daarom kunnen we de logica achter de geselecteerde zoekopdrachten verbergen voor de eindgebruikers. Wanneer we de complexe select-instructie moeten uitvoeren, hoeven we alleenuit te voeren
selectvan weergavenaam
Bekijken
Zoals eerder vermeld, is view een virtuele tabel, die een selectiequery verbergt. Deze selectiequery's worden niet vooraf uitgevoerd. Wanneer we een select-instructie uitvoeren vanuit een view, wordt de select-instructie uitgevoerd die zich in de view-body bevindt. Laten we aannemen dat de select-verklaring van de view-body een zeer complexe verklaring is. Dus wanneer het wordt uitgevoerd, duurt het enige tijd om uit te voeren (relatief meer tijd). Bovendien neemt view zeer weinig ruimte in beslag om zichzelf op te bergen. Dat komt omdat het alleen een select-statement als inhoud heeft.
Gematerialiseerde weergave (Mview)
Dit is een speciaal soort weergave. Mviews worden gemaakt wanneer we prestatieproblemen hebben met views. Wanneer we een mview maken, voert deze zijn selectiequery uit en slaat de uitvoer op als een snapshottabel. Wanneer we gegevens van Mview opvragen, hoeft het zijn select-statement niet opnieuw uit te voeren. Het geeft de uitvoer van zijn snapshot-tabel. Daarom is de uitvoeringstijd van mview korter dan view (voor dezelfde select-instructie). Mviews kan echter niet altijd worden gebruikt, omdat het dezelfde uitvoer toont, die wordt opgeslagen als een snapshot-tabel. We moeten de mview vernieuwen om de laatste resultatenset te krijgen.
Wat is het verschil tussen View en Mview?
1. Mview slaat zijn uitvoer altijd op als een snapshot-tabel wanneer deze wordt gemaakt, maar view maakt geen tabellen.
2. View heeft geen grote ruimte nodig om zijn inhoud op te slaan, maar mview heeft relatief meer ruimte nodig dan een view om zijn inhoud op te slaan (als een snapshot-tabel).
3. View neemt een grotere uitvoeringstijd in beslag, maar mview heeft een kortere uitvoeringstijd nodig dan views (voor dezelfde select-instructie).
4. Mviews moeten worden vernieuwd om de nieuwste gegevens te krijgen, maar weergaven geven altijd de nieuwste gegevens.
5. Het schema heeft het recht "gematerialiseerde weergave maken" nodig om mviews te maken, en voor weergaven heeft het het recht "weergave maken".
6. Indexen kunnen worden gemaakt op mviews om meer prestaties te krijgen, maar indexen kunnen niet worden gemaakt op views.