Innholdsfortegnelse:
- Bibliotekets cache i Oracle 12c
- Ordbokens cache i Oracle 12c
- Serverresultatbufferen i Oracle 12c
- Det reserverte bassenget i Oracle 12c
- Minst brukte algoritme i Oracle 12c
Video: Calling All Cars: Disappearing Scar / Cinder Dick / The Man Who Lost His Face 2025
Enkelte objekter og enheter i Oracle 12c brukes ofte. Derfor er det fornuftig å få dem tilberedt hver gang du vil gjøre en operasjon. Videre blir data i det felles bassenget aldri skrevet til disk.
Den delte bassenget består av fire hovedområder:
-
Bibliotek cache
-
Ordbok cache
-
Serverresultat cache
-
Reservert basseng
A cache er et midlertidig område i minnet som er opprettet for rask henting av informasjon som ellers kan ta lengre tid å hente. For eksempel inneholder cachene nevnt i forrige liste forhåndsinformert informasjon. I stedet for at en bruker må beregne verdier hver gang, kan brukeren få tilgang til informasjonen i en cache.
Bibliotekets cache i Oracle 12c
Bibliotekets cache er akkurat som det kalles: et bibliotek. Nærmere bestemt er det et bibliotek med klare SQL-setninger.
Hver gang du utfører en SQL-setning, skjer mye i bakgrunnen. Denne bakgrunnsaktiviteten kalles parsing . Parsing kan være ganske dyrt når det gjelder prosessorkraft.
Under parsing skjer noen av disse tingene:
-
Syntaks setningen er merket for å sikre at du har skrevet alt riktig.
-
Objektene du refererer til, blir sjekket. Hvis du for eksempel prøver å få tilgang til et bord som kalles MEDARBEID, sørger Oracle for at den eksisterer i databasen.
-
Oracle sørger for at du har tillatelse til å gjøre det du prøver å gjøre.
-
Koden konverteres til et databaseklar format. Formatet kalles byte-kode eller p-kode.
-
Oracle bestemmer den optimale banen eller planen. Dette er uten tvil den dyreste delen.
Hver gang du utfører en erklæring, lagres informasjonen i bibliotekets cache. På den måten må ikke neste gang du utfører erklæringen, det forekomme mye (for eksempel kontrollrettigheter).
Ordbokens cache i Oracle 12c
Ordbokens cache brukes også ofte til å analysere når du kjører SQL. Du kan tenke på det som en samling av informasjon om deg og databasens objekter. Det kan sjekke bakgrunnsinformasjon.
Ordbokens cache styres også av reglene i Last Nylig brukte (LRU) algoritmen: Hvis det ikke er riktig størrelse, kan informasjon bli utvist. Ikke å ha nok plass til ordbokens cache kan påvirke diskbruken.
Siden definisjonene av objekter og tillatelsesbasert informasjon er lagret i databasefiler, må Oracle lese disker for å laste inn den aktuelle informasjonen i ordbokens cache. Dette er mer tidkrevende enn å få det fra minnebufferen.Tenk deg et system med tusenvis av brukere som stadig utfører SQL … En feilbuffert ordboksbuffer kan virkelig hindre ytelsen.
I likhet med bibliotekets cache kan du ikke styre størrelsen på ordboksens cache direkte. Da det samlede delte bassenget endres i størrelse, gjør det også ordbokens cache.
Serverresultatbufferen i Oracle 12c
Serverresultatbufferen har to deler:
-
SQL-resultatbuffer: Denne hurtigbufferen lar Oracle se at de forespurte dataene - forespurt av en nylig utført SQL-setning - kan lagres i minnet. Denne situasjonen lar Oracle hoppe over eksekveringsdelen av, er, utførelse, manglende bedre term, og gå direkte til resultatsettet hvis det eksisterer.
SQL-resultatbufferen fungerer best på relativt statiske data (som beskrivelsen av et element på et e-handelsnettsted).
Skulle du bekymre deg for resultatbufferen som returnerer feil data? Ikke i det hele tatt. Oracle ugyldiggjør automatisk data lagret i resultatbufferen hvis noen av de underliggende komponentene er endret.
-
Cache for PL / SQL-funksjonsresultat: Cache for PL / SQL-funksjonen lagrer resultatene av en beregning. For eksempel, si at du har en funksjon som beregner verdien av dollaren basert på valutakursen for euroen. Du vil kanskje ikke lagre den faktiske verdien siden den endres hele tiden.
I stedet har du en funksjon som kaller en daglig eller timepris for å bestemme verdien av dollaren. I en finansiell søknad kan dette anropet skje tusenvis av ganger i timen. Derfor, i stedet for funksjonens utførelse, går den direkte til PL / SQL-resultatbufferen for å få dataene mellom hastighetsoppdateringene. Hvis frekvensen endres, utfører Oracle denne funksjonen og oppdaterer resultatbufferen.
Det reserverte bassenget i Oracle 12c
Når Oracle må tildele en stor del (over 5 KB) av sammenhengende minne i det felles bassenget, tildeler det minnet i det reserverte bassenget. Dedicating det reserverte bassenget for å håndtere store minneallokeringer forbedrer ytelsen og reduserer minnefragmentering.
Minst brukte algoritme i Oracle 12c
Hvis bibliotekets cache er kort på plass, blir objekter kastet ut. Erklæringer som brukes mest, forblir i bibliotekets cache den lengste. Jo oftere de blir brukt, jo mindre sjanse de har for å bli kastet hvis bibliotekets cache er kort på plass.
Utviklingsprosessen for bibliotekets cache er basert på det som kalles LAST Nylig brukt (LRU) algoritme. Hvis skrivebordet ditt er rotete, hva legger du først bort? Ting du bruker minst.
Du kan ikke endre størrelsen på bibliotekets cache selv. Det felles bassengets samlede størrelse bestemmer det. Hvis du tror for mange utsagn blir kastet, kan du øke den samlede delte bassengstørrelsen hvis du justerer det selv. Hvis du lar Oracle gjøre tuningen, tar det ledig minne fra andre steder.
