Udsigt vs materialiseret udsigt
Visninger og materialiserede visninger (mviews) er to typer af Oracle-databaseobjekter. Begge disse objekter henviser til udvalgte forespørgsler. Disse valgte forespørgsler fungerer som virtuelle tabeller. Normalt refererer visninger og mviews til store udvalgte forespørgsler, der har sæt sammenføjninger. Derfor er en af de største fordele ved visninger, at vi kan gemme komplekse udvalgte forespørgsler som visninger. Derfor kan vi skjule logikken bag de valgte forespørgsler for dens slutbrugere. Når vi er nødt til at udføre den komplekse markering, skal vi bare udføre
vælg * fra visningsnavnet
Udsigt
Som nævnt tidligere er visningen en virtuel tabel, der skjuler en udvalgt forespørgsel. Disse valgte forespørgsler udføres ikke forud. Når vi udfører en udvalgt sætning fra en visning, udfører den den valgte sætning, der er inde i visningskroppen. Lad os antage det valgte udsagn fra synskroppen som en meget kompleks udsagn. Så når det udføres, tager det nogen tid at udføre (relativt mere tid). Derudover bruger visningen meget lille plads til at gemme sig selv. Det skyldes, at det kun har et udvalgt udsagn som indhold.
Materialiseret visning (Mview)
Dette er en speciel type visning. Mviews oprettes, når vi har performanceproblemer med visninger. Når vi opretter en mview, udfører den dens udvalgte forespørgsel og gemmer dens output som en snapshot-tabel. Når vi anmoder om data fra Mview, behøver det ikke at udføre sin valgte erklæring. Det giver output fra sin snapshot-tabel. Derfor er udførelsestiden for mview mindre end visning (for samme valgsætning). Imidlertid kan mviews ikke bruges hele tiden, da det viser den samme output, som er gemt som en snapshot-tabel. Vi bør opdatere mview for at få det seneste resultat indstillet.
Hvad er forskellen mellem Udsigt og Mview? 1. Mview gemmer altid dens output som en snapshot-tabel, når den oprettes, men visningen skaber ingen tabeller. 2. Udsigt har ikke brug for stor plads til at gemme sit indhold, men mview har brug for relativt større plads end en visning for at gemme dens indhold (som et snapshot-tabel). 3. Visning tager større udførelsestid, men mview tager mindre udførelsestid end visninger (for den samme markering). 4. Mviews skal opdateres for at få de nyeste data, men visninger giver altid de nyeste data. 5. Skemaet har brug for “Skabe materialiseret udsigt” privilegium at oprette mviews, og for visninger, det har brug for “Opret visning” privilegium. 6. Indekser kan oprettes på mviews for at få mere ydeevne, men indekser kan ikke oprettes på visninger. |