Indholdsfortegnelse:
- Bibliotekets cache i Oracle 12c
- Ordbogens cache i Oracle 12c
- Serverresultat cachen i Oracle 12c
- Den reserverede pool i Oracle 12c
- Mindst anvendte algoritme i Oracle 12c
Video: SCPT 15: Oracle Shared Pool 2025
Visse objekter og enheder i Oracle 12c bruges ofte. Derfor er det fornuftigt at have dem klar hver gang du vil gøre en operation. Desuden er data i den fælles pool aldrig skrevet til disk.
Den fælles pool består af fire hovedområder:
-
Bibliotekskache
-
Ordbog cache
-
Server Resultat cache
-
Reserveret Pool
A cache er et midlertidigt område i hukommelsen oprettet til hurtig hentning af oplysninger, der ellers ville tage længere tid at hente. For eksempel indeholder de caches, der er nævnt i den foregående liste, prækomputeret information. I stedet for at en bruger skal beregne værdier hver gang, kan brugeren få adgang til oplysningerne i en cache.
Bibliotekets cache i Oracle 12c
Bibliotekets cache er ligesom det hedder: et bibliotek. Mere specifikt er det et bibliotek af klare SQL-udsagn.
Hver gang du udfører en SQL-sætning, sker der meget i baggrunden. Denne baggrundsaktivitet kaldes parsing . Parsering kan være ret dyr med hensyn til behandlingskraft.
Under parsering sker nogle af disse ting:
-
Syntaxen for sætningen er markeret for at sikre, at du har skrevet alt korrekt.
-
De objekter, du refererer til, er markeret. Hvis du f.eks. Forsøger at få adgang til et bord kaldet MEDARBEJDER, sørger Oracle for, at den findes i databasen.
-
Oracle sørger for, at du har tilladelse til at gøre, hvad du forsøger at gøre.
-
Koden konverteres til et databaseklar format. Formatet hedder byte-kode eller p-kode.
-
Oracle bestemmer den optimale sti eller plan. Dette er langt den dyreste del.
Hver gang du udfører en erklæring, gemmes oplysningerne i bibliotekets cache. På den måde skal næste gang du udfører erklæringen, ikke meget forekomme (f.eks. Kontroltilladelser).
Ordbogens cache i Oracle 12c
Ordbogens cache bruges også ofte til parsering, når du udfører SQL. Du kan tænke på det som en samling af oplysninger om dig og databasens objekter. Det kan tjekke baggrundstypen information.
Ordbogen cachen styres også af reglerne i Last Nylig brugt (LRU) algoritme: Hvis det ikke er den rigtige størrelse, kan informationen udvises. Ikke at have nok plads til ordbogens cache kan påvirke diskbrug.
Eftersom definitionerne af objekter og tilladelsesbaserede oplysninger er gemt i databasefiler, skal Oracle læse diske for at genindlæse disse oplysninger i ordbogens cache. Dette er mere tidskrævende end at få det fra hukommelsescache.Forestil dig et system med tusindvis af brugere, der konstant udfører SQL … En cache med upassende størrelse kan virkelig hæmme ydeevnen.
Ligesom bibliotekets cache kan du ikke styre størrelsen af ordbogens cache direkte. Da den samlede delte pool ændrer sig i størrelse, gør det også ordbogens cache.
Serverresultat cachen i Oracle 12c
Serverresultatscachen har to dele:
-
SQL-resultatcache: Denne cache gør det muligt for Oracle at de ønskede data - anmodet om af en nylig udført SQL-sætning - muligvis gemmes i hukommelsen. Denne situation gør det muligt for Oracle at springe udførelsesdelen af den, der, henrettelsen, manglen på et bedre udtryk, og gå direkte til resultatet, hvis det eksisterer.
SQL-resultatbufferen fungerer bedst på forholdsvis statiske data (som beskrivelsen af et emne på et e-handelswebsted).
Skal du bekymre dig om resultatcachen, der returnerer forkerte data? Slet ikke. Oracle invaliderer automatisk data, der er gemt i resultatcachen, hvis nogen af de underliggende komponenter ændres.
-
PL / SQL-funktionsresultat cache: PL-SQL-funktionsresultat cachen gemmer resultaterne af en beregning. Sig for eksempel, at du har en funktion, som beregner værdien af dollaren baseret på euroens valutakurs. Du vil måske ikke gemme den aktuelle værdi, da den ændres konstant.
I stedet har du en funktion, der kræver en daglig eller timepris for at bestemme værdien af dollaren. I en finansiel ansøgning kan dette opkald ske tusindvis af gange i timen. Derfor går det i stedet for funktionens udførelse direkte til PL / SQL-resultatcachen for at få dataene mellem hastighedsopdateringerne. Hvis satsen ændrer sig, udfører Oracle igen funktionen og opdaterer resultatcachen.
Den reserverede pool i Oracle 12c
Når Oracle skal tildele en stor del (over 5 KB) af sammenhængende hukommelse i den fælles pool, tildeler den hukommelsen i den reserverede pool. Dedikering af den reserverede pool til håndtering af store hukommelsesallokeringer forbedrer ydeevnen og reducerer hukommelsesfragmentering.
Mindst anvendte algoritme i Oracle 12c
Hvis bibliotekets cache er kort på plads, slettes genstande. Erklæringer, der bruges mest, forbliver i bibliotekets cache den længste. Jo oftere de bliver brugt, desto mindre chance er de for at blive udvist, hvis bibliotekets cache er kort i rummet.
Udviklingsprocessen for bibliotekets cache er baseret på det, der kaldes Mindst Nyligt Brugt (LRU) -algoritme. Hvis dit skrivebord er rodet, hvad laver du først væk? De ting du bruger mindst.
Du kan ikke selv ændre størrelsen på bibliotekets cache. Den fælles pools samlede størrelse bestemmer det. Hvis du tror, at alt for mange udsagn bliver udvist, kan du øge den samlede delte pool størrelse, hvis du justerer det selv. Hvis du lader Oracle gøre tuningen, griber den fri hukommelse fra andre steder.