Innehållsförteckning:
- Bibliotekets cache i Oracle 12c
- Ordbokens cache i Oracle 12c
- Cache för serverresultat i Oracle 12c
- Den reserverade poolen i Oracle 12c
- Sista senast använda algoritmen i Oracle 12c
Video: The Great Gildersleeve: Gildy's Radio Broadcast / Gildy's New Secretary / Anniversary Dinner 2024
Vissa objekt och enheter i Oracle 12c används ofta. Därför är det vettigt att få dem redo varje gång du vill göra en operation. Dessutom skrivs data i den delade poolen aldrig till disk.
Den delade poolen består av fyra huvudområden:
-
Bibliotekets cache
-
Ordningscache
-
Serverresultat cache
-
Reserverad pool
A cache är ett temporärt område i minnet skapat för en snabb hämtning av information som annars skulle kunna ta längre tid att hämta. Exempelvis innehåller de cachar som nämns i föregående lista förkomprimerad information. I stället för att en användare måste beräkna värden varje gång kan användaren få tillgång till informationen i en cache.
Bibliotekets cache i Oracle 12c
Bibliotekets cache är precis som det kallas: ett bibliotek. Mer specifikt är det ett bibliotek med färdiga SQL-uttalanden.
Varje gång du kör ett SQL-uttalande händer mycket i bakgrunden. Den här bakgrundsaktiviteten heter parsing . Parsning kan vara ganska dyr med avseende på bearbetningskraft.
Under parsning sker några av dessa saker:
-
Syntaxen för uttalandet är markerad för att du har skrivit allt korrekt.
-
Objekten du refererar till är markerade. Om du till exempel försöker komma åt ett bord som kallas anställd, säkerställer Oracle att den finns i databasen.
-
Oracle ser till att du har behörighet att göra vad du försöker göra.
-
Koden omvandlas till ett databasklart format. Formatet heter byte-kod eller p-kod.
-
Oracle bestämmer den optimala vägen eller planen. Det här är den dyraste delen.
Varje gång du utför ett uttalande lagras informationen i bibliotekets cache. På så sätt måste nästa gång du utför uttalandet inte mycket förekomma (t.ex. kontrollbehörigheter).
Ordbokens cache i Oracle 12c
Ordbokens cache används också ofta för att analysera när du kör SQL. Du kan tänka på det som en samling information om dig och databasens objekt. Det kan kontrollera bakgrundsinformation.
Ordbokens cache regleras också av reglerna för Minst nyligen använda (LRU) -algoritmen: Om det inte är rätt storlek kan information utvisas. Att inte ha tillräckligt med utrymme för ordbokens cache kan påverka diskanvändningen.
Eftersom definitionerna av objekt och tillståndsbaserad information lagras i databasfiler måste Oracle läsa diskar för att ladda om den informationen i ordbokens cache. Det här är mer tidskrävande än att få det från minnescachen.Föreställ dig ett system med tusentals användare som ständigt kör SQL … en felaktigt storleksordning för ordlistor kan verkligen hämma prestanda.
Liksom bibliotekets cache kan du inte styra storleken på ordlistor cachen direkt. Eftersom den övergripande delade poolen ändras i storlek, så gör ordlistan cachen.
Cache för serverresultat i Oracle 12c
Cache för serverresultat har två delar:
-
SQL-resultatcache: Denna cache låter Oracle se att den begärda data - begärd av ett nyligen genomfört SQL-uttalande - kan lagras i minnet. Denna situation låter Oracle hoppa över exekveringsdelen av, er, körning, på grund av en bättre term, och gå direkt till resultatuppsättningen om den existerar.
Cache för SQL-resultat fungerar bäst på relativt statiska data (som beskrivningen av ett objekt på en e-handelsplats).
Skulle du oroa dig för resultatet cacheminnet som returnerar felaktiga data? Inte alls. Oracle invaliderar automatiskt data som lagras i resultatcachen om någon av de underliggande komponenterna ändras.
-
Cache för PL / SQL-funktionsresultat: Cache för PL / SQL-funktionen lagrar resultatet av en beräkning. Till exempel, säg att du har en funktion som beräknar dollarns värde baserat på växelkursen för euron. Du kanske inte vill lagra det faktiska värdet eftersom det ändras ständigt.
I stället har du en funktion som kräver en daglig eller timaxel för att bestämma dollarns värde. I en finansiell ansökan kan det här samtalet hända tusentals gånger i timmen. Därför går istället för funktionen exekvering direkt till PL / SQL-resultatcachen för att få data mellan hastighetsuppdateringarna. Om kursen ändras, utför Oracle funktionen igen och uppdaterar resultatcachen.
Den reserverade poolen i Oracle 12c
När Oracle behöver tilldela en stor bit (över 5 KB) av sammanhängande minne i den delade poolen, fördelar den minnet i den reserverade poolen. Dedikering av den reserverade poolen för att hantera stora minnesallokeringar förbättrar prestanda och minskar minnesfragmentering.
Sista senast använda algoritmen i Oracle 12c
Om bibliotekets cache är kort i rymden kastas objekt ut. Uttalanden som används mest håller sig i bibliotekets cache den längsta. Ju oftare de används, desto mindre chans att de har blivit utslagna om bibliotekets cache är kort i rymden.
Utvecklingsprocessen för bibliotekets cache bygger på vad som kallas Last Nyligen Användad (LRU) -algoritm. Om ditt skrivbord är rörigt, vad lägger du först bort? De saker du använder minst.
Du kan inte ändra storleken på bibliotekets cache själv. Den delade poolens totala storlek bestämmer det. Om du tror att alltför många uttalanden utesluts kan du öka den totala delade poolstorleken om du justerar det själv. Om du låter Oracle göra inställningen tar det ledigt minne från andra håll.