Inhoudsopgave:
- De bibliotheekcache in Oracle 12c
- De woordenboekcache in Oracle 12c
- Het cachegeheugen voor serverresultaten in Oracle 12c
- De gereserveerde pool in Oracle 12c
- Het minst gebruikte algoritme in Oracle 12c
Video: Bouw: veiligheid basisprincipes 2024
Bepaalde objecten en apparaten in Oracle 12c worden vaak gebruikt. Daarom is het logisch om ze klaar te hebben telkens wanneer u een bewerking wilt uitvoeren. Bovendien worden gegevens in de gedeelde pool nooit naar schijf geschreven.
De gedeelde pool zelf bestaat uit vier hoofdgebieden:
-
Bibliotheekcache
-
Woordenboekcache
-
Server Result cache
-
gereserveerde pool
Een cache is een tijdelijk gebied in het geheugen dat is gemaakt voor een snelle ophaal van informatie die anders langer zou kunnen duren om te herstellen. De caches die in de voorgaande lijst worden vermeld, bevatten bijvoorbeeld vooraf berekende informatie. In plaats van dat een gebruiker steeds waarden moet berekenen, heeft de gebruiker toegang tot de informatie in een cache.
De bibliotheekcache in Oracle 12c
De bibliotheekcache is precies zoals het wordt genoemd: een bibliotheek. Meer specifiek is het een bibliotheek van kant-en-klare SQL-instructies.
Telkens wanneer u een SQL-instructie uitvoert, gebeurt er veel op de achtergrond. Deze achtergrondactiviteit wordt parsing genoemd. Parsing kan vrij duur zijn in termen van verwerkingskracht.
Tijdens het parseren gebeuren enkele van de volgende dingen:
-
De syntaxis van de instructie wordt gecontroleerd om ervoor te zorgen dat u alles correct typt.
-
De objecten waarnaar u verwijst, worden gecontroleerd. Als u bijvoorbeeld probeert toegang te krijgen tot een tabel met de naam EMPLOYEE, zorgt Oracle ervoor dat deze in de database aanwezig is.
-
Oracle zorgt ervoor dat je toestemming hebt om te doen wat je probeert te doen.
-
De code wordt omgezet in een indeling die geschikt is voor de database. Het formaat wordt byte-code of p-code genoemd.
-
Oracle bepaalt het optimale pad of plan. Dit is veruit het duurste onderdeel.
Telkens wanneer u een instructie uitvoert, wordt de informatie opgeslagen in de cache van de bibliotheek. Op die manier hoeft de volgende keer dat u de verklaring uitvoert niet veel te gebeuren (zoals het controleren van machtigingen).
De woordenboekcache in Oracle 12c
De woordenboekcache wordt ook vaak gebruikt voor het parseren wanneer u SQL uitvoert. Je kunt het beschouwen als een verzameling informatie over jezelf en de objecten van de database. Het kan informatie van het achtergrondtype controleren.
De woordenboekcache wordt ook beheerst door de regels van het minst gebruikte (LRU) -algoritme: als het niet de juiste grootte heeft, kan informatie worden verwijderd. Als u niet genoeg ruimte heeft voor de woordenboekcache, kan dit van invloed zijn op het schijfgebruik.
Omdat de definities van objecten en op rechten gebaseerde informatie worden opgeslagen in databasebestanden, moet Oracle schijven lezen om die informatie opnieuw in de woordenboekcache te laden. Dit kost meer tijd dan het ophalen uit de geheugencache.Stelt u zich een systeem voor met duizenden gebruikers die constant SQL uitvoeren … een cachegeheugen met een onjuist formaat kan de prestaties echt belemmeren.
Net als de bibliotheekcache, kunt u de grootte van de cache van de woordenboeken niet rechtstreeks bepalen. Naarmate de totale gedeelde pool van grootte verandert, neemt ook de cache voor het woordenboek toe.
Het cachegeheugen voor serverresultaten in Oracle 12c
Het cachegeheugen voor serverresultaten bestaat uit twee delen:
-
Cache met SQL-resultaten: Met deze cache kan Oracle zien dat de gevraagde gegevens - opgevraagd door een recent uitgevoerde SQL-instructie - mogelijk worden opgeslagen in het geheugen. Deze situatie laat Oracle het uitvoeringsgedeelte van de, ERE, uitvoering overslaan, bij gebrek aan een betere term, en direct naar de resultaatset gaan als deze bestaat.
De SQL-resultaatcache werkt het best op relatief statische gegevens (zoals de beschrijving van een artikel op een e-commercesite).
Maakt u zich zorgen over de resultaatcache die onjuiste gegevens retourneert? Helemaal niet. Oracle maakt gegevens die zijn opgeslagen in de resultaatcache automatisch ongeldig als een van de onderliggende componenten wordt gewijzigd.
-
PL / SQL-functie result cache: De resultaat-cache van de PL / SQL-functie slaat de resultaten van een berekening op. Stel dat u een functie hebt die de waarde van de dollar berekent op basis van de wisselkoers van de euro. U wilt die actuele waarde misschien niet opslaan omdat deze constant verandert.
In plaats daarvan hebt u een functie die een dagelijks of uurtarief oproept om de waarde van de dollar te bepalen. In een financiële toepassing kan deze oproep duizenden keren per uur plaatsvinden. Daarom gaat het in plaats van de functie die wordt uitgevoerd direct naar de PL / SQL-resultaatcache om de gegevens tussen de koersupdates te krijgen. Als de snelheid verandert, voert Oracle de functie opnieuw uit en werkt de resultaatcache bij.
De gereserveerde pool in Oracle 12c
Wanneer Oracle een groot deel (meer dan 5 KB) aaneengesloten geheugen in de gedeelde pool moet toewijzen, wordt het geheugen in de gereserveerde pool toegewezen. Het toewijzen van de gereserveerde pool om grote geheugentoewijzingen te verwerken verbetert de prestaties en vermindert geheugenfragmentatie.
Het minst gebruikte algoritme in Oracle 12c
Als de bibliotheekcache weinig ruimte heeft, worden objecten weggegooid. Verklaringen die het langst in de bibliotheekcache worden gebruikt, blijven het langst. Hoe vaker ze worden gebruikt, hoe minder kans ze hebben om uitgezet te worden als de bibliotheekcache weinig ruimte heeft.
Het uitwijkproces van de bibliotheekcache is gebaseerd op het zogeheten minst gebruikte (LRU) -algoritme. Als uw bureau rommelig is, wat bergt u dan eerst op? De dingen die je het minst gebruikt.
U kunt de grootte van de bibliotheekcache niet zelf wijzigen. De totale grootte van het gedeelde zwembad bepaalt dat. Als je denkt dat te veel uitspraken worden uitgezet, kun je de algehele gedeelde zwembadgrootte vergroten als je deze zelf afstemt. Als je Oracle de tuning laat doen, grijpt het gratis geheugen van elders.