View vs Materialized View
Views og materialized views (mviews) er to typer oracle-databaseobjekter. Begge disse objekter henviser til udvalgte forespørgsler. Disse udvalgte forespørgsler fungerer som virtuelle tabeller. Norm alt refererer visninger og mviews til store udvalgte forespørgsler, som har sæt af joinforbindelser. Derfor er en af hovedfordelene ved visninger, at vi kan gemme komplekse udvalgte forespørgsler som visninger. Derfor kan vi skjule logikken bag de udvalgte forespørgsler fra slutbrugerne. Når vi skal udføre den komplekse select-sætning, skal vi bare udføre
vælgfra visningsnavn
Vis
Som tidligere nævnt er view en virtuel tabel, som skjuler en udvalgt forespørgsel. Disse udvalgte forespørgsler er ikke udført på forhånd. Når vi udfører en select-sætning fra en visning, udfører den den select-sætning, der er inde i visningens krop. Lad os antage den udvalgte erklæring fra visningslegemet som en meget kompleks erklæring. Så når det udføres, tager det noget tid at udføre (relativt længere tid). Derudover bruger view meget lille plads til at opbevare sig selv. Det er fordi den kun har en udvalgt erklæring som indhold.
Materialiseret visning (Mview)
Dette er en speciel type visning. Mviews oprettes, når vi har præstationsproblemer med views. Når vi opretter en mview, udfører den sin select-forespørgsel og gemmer dens output som en snapshottabel. Når vi anmoder om data fra Mview, behøver den ikke at udføre sin select-sætning igen. Det giver output fra sin snapshot-tabel. Derfor er udførelsestiden for mview kortere end view (for samme select-sætning). Men mviews kan ikke bruges hele tiden, da det viser det samme output, som er gemt som en snapshottabel. Vi bør opdatere mview for at få dets seneste resultatsæt.
Hvad er forskellen mellem View og Mview?
1. Mview gemmer altid sit output som en snapshottabel, når det oprettes, men view opretter ingen tabeller.
2. View behøver ikke stor plads for at gemme indholdet, men mview har brug for relativt større plads end en view for at gemme indholdet (som en snapshottabel).
3. View tager længere udførelsestid, men mview tager kortere udførelsestid end views (for den samme select-sætning).
4. Mviews skal opdateres for at få de seneste data, men views giver altid de seneste data.
5. Skemaet har brug for "opret materialiseret visning"-privilegium for at oprette mviews, og for visninger har det brug for "create view"-privilegium.
6. Indekser kan oprettes på mviews for at opnå mere ydeevne, men indekser kan ikke oprettes på views.