Gå til innhold

[Løst]Mange views, effekt på ytelse?


Anbefalte innlegg

Hei,

 

Kan mange views ha en negativ effekt i forhold til ytelse? Må hvert eneste view avhengig av en tabell oppdateres dersom denne tabellen oppdateres? Eller skjer det kun når man leser fra view-et?

 

Gjelder for øvrig PostgreSQL, dersom det er relevant.

 

// Jonas

Endret av Jonas
Lenke til kommentar
Videoannonse
Annonse
Kan mange views ha en negativ effekt i forhold til ytelse? Må hvert eneste view avhengig av en tabell oppdateres dersom denne tabellen oppdateres? Eller skjer det kun når man leser fra view-et?

 

Gjelder for øvrig PostgreSQL, dersom det er relevant.

 

Du kan se på ett PostgreSQL view som en lagret spørring egentlig. Data er ikke statisk i viewet, men spørringen som definerer viewet legges til spørringen du gjør mot viewet kan man si.

 

Du kan med andre ord kose deg med å lage så mange views du bare vil, uten å bekymre deg. :)

Lenke til kommentar

Hvis du bruker et eller flere views i en spørring kan dette gå ekstremt tregt.

 

F.eks hvis du har en tabell med statuser (en for hver ordre i et system) og lager et view med siste status for hver ordre og så bruker dette viewet når du skal hente alle ordrene med siste status X. Grunnen er ganske enkelt at du ikke har noen indekser i viewet.

Lenke til kommentar
Grunnen er ganske enkelt at du ikke har noen indekser i viewet.

 

Nei, det er forsåvidt helt riktig. Ett view har ikke indexer, men det har ikke data heller. Det bruker indexer fra datakilden, akkurat som det bruker data fra datakilden.

 

Jepp, men som i eksempelet mitt så er dette noe du måtte hatt indeksert for å få det til å gå kjappt. Alternativet er da at du holder en aggregat-tabell vedlike via triggers.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...