Bekijk versus gematerialiseerde weergave
Weergaven en gematerialiseerde weergaven (mviews) zijn twee soorten Oracle-databaseobjecten. Beide objecten verwijzen naar geselecteerde queries. Deze geselecteerde zoekopdrachten fungeren als virtuele tabellen. Normaal gesproken verwijzen views en mviews naar grote select-queries, die een set joins hebben. Daarom is een van de belangrijkste voordelen van weergaven dat we complexe selectiequery's als weergaven kunnen opslaan. Daarom kunnen we de logica achter de geselecteerde zoekopdrachten verbergen voor de eindgebruikers. Als we de complexe select-instructie moeten uitvoeren, hoeven we alleen maar uit te voeren
selecteer * uit viewname
Visie
Zoals eerder vermeld, is view een virtuele tabel die een selectiequery verbergt. Deze geselecteerde zoekopdrachten worden niet vooraf uitgevoerd. Wanneer we een select-instructie vanuit een view uitvoeren, voert het de select-instructie uit die in de view-body staat. Laten we aannemen dat de selecte bewering van de viewbody een zeer complexe bewering is. Dus wanneer het wordt uitgevoerd, duurt het even voordat het wordt uitgevoerd (relatief meer tijd). Bovendien gebruikt view heel weinig ruimte om zichzelf op te slaan. 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 het zijn selectiequery uit en slaat het zijn uitvoer op als een snapshot-tabel. Wanneer we gegevens opvragen bij Mview, hoeft het zijn select-statement niet opnieuw uit te voeren. Het geeft de uitvoer van zijn snapshot-tabel. Daarom is de uitvoeringstijd van mview kleiner dan die van view (voor dezelfde select-instructie). Mviews kan echter niet altijd worden gebruikt, omdat het dezelfde uitvoer toont, die is opgeslagen als een snapshot-tabel. We moeten de mview verversen om de laatste resultatenset te krijgen.
Wat is het verschil tussen View en Mview? 1. Mview slaat zijn uitvoer altijd op als een momentopnametabel wanneer het 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 vergt een grotere uitvoeringstijd, maar mview kost een kleinere uitvoeringstijd dan views (voor dezelfde select-instructie). 4. Mviews moeten worden vernieuwd om de laatste gegevens te krijgen, maar views geven altijd de laatste gegevens. 5. Het schema heeft het recht “maak gematerialiseerde weergave” nodig om mviews te maken, en voor weergaven heeft het het recht “weergave maken” nodig. 6. Indexen kunnen worden gemaakt op mviews om betere prestaties te krijgen, maar indexen kunnen niet op views worden gemaakt. |