Hvordan bruke PostgreSQL -materialiserte visninger

Hvordan bruke PostgreSQL -materialiserte visninger

Visninger i PostgreSQL er grafiske tabeller som viser data fra de tilsvarende tabellene. Vanlige visninger kan også endres. PostgreSql tar visningsbegrepet til neste trinn ved å la visninger lagre informasjon vesentlig, referert til som materialiserte synspunkter. En materialisert visning bevarer utgangen fra en tidkrevende, komplisert spørring, slik at du kan spørre resultatene raskt når som helst når som helst. Materialiserte synspunkter brukes ofte i datavarehus og forretningsintelligensapplikasjoner fordi de er nyttige i situasjoner som krever rask tilgang til data.

Hvorfor bruke materialiserte visninger?

Hvis visningskommandoen er for treg for deg, kan det hende du foretrekker å bruke en materialisert visning. Materialiserte visninger har mye allsidighet ved å gjøre det mulig for deg å beholde en representasjon vesentlig i databasen med kortere tilgangstider. Anta at du er pålagt å opprette en databasespørsmål for å bli med på noen tabeller, fjerne rader fra den unionede samlingen og sortere tabellene på forskjellige måter. Dette kan være et komplisert og tidkrevende spørsmål, og uten materialiserte visninger vil du ende opp med å bruke et materialisert syn for å takle dette dilemmaet. Denne artikkelen lærer deg hvordan du bruker materialiserte visninger i PostgreSQL.

Syntaks

>> Opprett materialisert visning av visningsnavn som spørring med [ingen] data;

Forklaringen på dette generelle synet er som følger:

  • Vis_navn: Tittelen på visningen som skal opprettes med Create Materialized View -setningen.
  • Spørsmål: Spørringen som henter dataene fra de tilsvarende tabellene.
  • Med [ingen] data: Velg med dataalternativet for å innlemme informasjonsdata i det materialiserte visningen på utviklingstidspunktet; Ellers, velg uten data. Visningen er merket som uforståelig hvis du bruker alternativet med [ingen] data, noe som innebærer at du ikke vil kunne søke etter informasjon fra visningen med mindre du har lastet inn data i det først.

Hvordan bruke materialiserte visninger

Start PostgreSQL-kommandolinjeskallet ditt for å begynne å jobbe med materialiserte visninger.

Oppgi servernavnet, databasen du vil jobbe med, portnummer og brukernavn for å begynne å bruke kommandoskallet. La disse mellomrommene være tomme hvis du vil bruke standardsystemet.

Eksempel 1: Enkel visning

For å forstå det materialiserte synet, må du først forstå enkle synspunkter. Så lage den nye tabellen, 'Student', ved hjelp av Create Table -kommandoen, som vedlagt.

>> Opprett tabellstudent (SID Serial Primary Key, Sname Varchar (100) Ikke null, alder varchar (100) ikke null);

Etter det, sett inn data i den ved å bruke innsatsspørsmålet.

Hent postene til "Student" -tabellen ved hjelp av Select -setningen for den enkle visningen.

>> velg * fra student;

Eksempel 2: Enkel materialisert visning

Nå er det på tide å dekke den materialiserte utsikten. Vi vil bruke "student" -bordet for å lage et materialisert syn. Vi vil opprette en materialisert visning som heter 'STD_VIEW' ved å bruke kommandoen 'Create Materialized View'. I dette synspunktet vil vi hente studentnavnet 'Sname' fra 'Student' -bordet, gruppert og sortert i stigende rekkefølge i 'Sname' -kolonnen.

>> Opprett materialisert visning STD_VIEW som SELECT SNAME FRA STUDENT GROUP BY SNAME ORDER AV SNAME;

Nå, ved hjelp av Select Query for å utføre visningen, vil vi returnere navnene på studentene i 'Sname' -kolonnen i 'Student' -tabellen.

>> velg * fra std_view;

Eksempel 3: Materialisert visning ved hjelp av hvor leddet

Nå vil vi lage et materialisert visning ved hjelp av hvor leddet. Tenk på følgende "student" -tabell med noen endringer i verdiene.

Deretter vil vi opprette en materialisert visning som heter 'Teststd' ved hjelp av spørringen. Vi vil velge postene til "Student" -tabellen der verdien av 'Age' -kolonnen er større enn '25' ved å bruke WHERE -leddet. Spørringen fungerer ordentlig, som sett på bildet.

>> Lag materialisert visning Teststd som valgt SID, SNAME, AGE fra student der alder> '25';

Til slutt vil vi utføre det materialiserte synet som vi nettopp opprettet ved hjelp av Select -kommandoen, som nedenfor. Du vil se at den vil returnere alle postene fra 'Student' -tabellen der 'Age' -kolonnen har en verdi på større enn '25.'

>> Velg * fra Teststd;

Eksempel 4: Oppdater materialisert visning ved hjelp av uten dataklausul

I dette eksemplet vil vi lage et materialisert visning, der vi vil bruke uten dataklausul for å oppdatere visningen. Anta at følgende "student" -tabell med noen endringer i verdiene.

Vi vil nå opprette den materialiserte "Teststd" -visningen. Dette synet vil velge postene fra 'Student' -tabellen der studentenes alder er mindre enn '40.'De hentede postene vil bli gruppert og sortert i henhold til stigende rekkefølge i kolonnen' Sid '. På slutten av spørringen vil vi bruke uten dataklausul for å indikere at spørringen ikke vil lagre noe informasjon i et materialisert visning. Visningen som vises nedenfor, bør utføre disse handlingene med hell.

>> Lag materialisert visning Teststd som valgt SID, SNAME, AGE fra student der alder < '40' GROUP BY sid ORDER BY sid WITH NO DATA;

Når du legger til "uten data" -klausul til et materialisert visning, skaper dette en tom en. Dette materialiserte synet er ikke spørringbart. Som du kan se i følgende bilde, henter det ikke postene i den nyopprettede visningen.

Oppdaterens materialiserte visningsuttalelse brukes til å importere dataene til et materialisert visning. Fyll ut den materialiserte visningen ved å kjøre følgende oppdateringsmaterialiserte visesøk i skallet. Som du ser har denne spørringen fungert effektivt.

>> Oppdater materialisert visning Teststd;

Igjen, hente postene til den materialiserte visningen 'Teststd' ved hjelp av Select -setningen i skallet. Denne gangen fungerer den utvalgte spørringen ordentlig fordi "oppdatering" -uttalelsen har lastet innholdet i den materialiserte visningen.

Eksempel 5: Drop materialisert visning

Følgende kommando vil slette en materialisert visning.

>> slipp materialisert visning std_view;

Konklusjon

Denne artikkelen viste deg hvordan du bruker materialiserte visninger via hvor leddet og oppdateringsspørsmål i kommandolinjeskallet.