Video: SQL 2024
Minneshantering är en viktig del av arbetet med instanser i din databas. Oracle 12c ger dig tre sätt att hantera minnet i ditt fall:
-
Automatiskt genom att låta Oracle göra allt arbete
-
Manuellt genom att ställa in enskilda parametrar för olika minnesområden
-
Kombination av automatisk och manuell genom att använda din kunskap om hur saker fungerar, använda Oracles rådgivningsinfrastruktur och låta Oracle ta över vissa områden
En snabb notering om Oracle-automation. Genom de senaste versionerna av Oracle har databasen blivit mer automatiserad i områden som tidigare var manuella och till och med tråkiga. Detta ska inte sägas så snart det inte tar någon speciell skicklighet för att hantera en Oracle-databas. Exakt motsatsen: När mer vardagliga operationer automatiseras frigör du dig som DBA för att fokusera på de mer avancerade funktionerna.
Vi har haft stor framgång med att implementera automatiska funktioner för kunder. Det frigör våra resurser för att fokusera på saker som hög tillgänglighet och säkerhet, områden som kräver nära heltids uppmärksamhet. Tack och lov, du behöver inte spendera timmar som tittar på vilka SQL-uttalanden åldras ur den delade poolen i förtid, vilket resulterar i prestandaproblem.
Vi rekommenderar att du hanterar minnet automatiskt i Oracle 12c.
När du skapar din databas kan du ställa in en ny parameter som tar nästan alla minnesinställningar ur dina händer: MEMORY_TARGET. Genom att ställa in denna parameter formas alla minnesområden automatiskt och hanteras. När du har skrivit visar parameterminne_target i SQL * Plus (SQL-kommandoradsgränssnittet som finns tillgängligt i Oracle) ser du denna utmatning på skärmen:
NAME TYPE VALUE -------- ---------------------------- ----------- ----------- ------------------- memory_target stort heltal 756M
Med automatisk minneshantering kan du ta hand om mängden minne på systemet och bestämma sedan hur mycket du vill använda för databasen.
Det är aldrig uppenbart vilket värde du borde välja som utgångspunkt. Svar på dessa frågor för att hjälpa till att ställa in värdet:
-
Hur mycket minne finns tillgängligt?
-
Hur många databaser kommer slutligen att finnas på maskinen?
-
Hur många användare kommer att finnas på maskinen? (Om många delar du 4MB per användare för processkostnader.)
-
Vilka andra program körs på maskinen?
Innan användarna kommer på maskinen, överväg att ta inte mer än 40 procent av minnet för Oracle-databaser.Använd följande formel:
(GB minne ×. 40) / Antal Eventual Databaser = GB för MEMORY_TARGET per databas
Till exempel om din maskin hade 8 GB minne och slutligen kommer att innehålla två databaser av samma natur och endast 100 användare vardera skulle du ha denna ekvation: (8 × 40) / 2 = 1. 6GB för MEMORY_TARGET per databas.
För att avgöra om du har tillräckligt med minne, ger Oracle dig några tips om du vet var du ska titta på. Den heter Memory Target Advisor. Hitta det från kommandoraden i form av visningen V $ MEMORY_TARGET_ADVICE. Du hittar den på databaskontrollens hemsida genom att klicka på Advisor Central> Minnesrådgivare> Råd.
Vad du än väljer för inställningen MEMORY_TARGET är inte allt minne som Oracle använder. Det är därför du borde ha en uppfattning om hur många sessioner det kommer att vara före du gör den slutliga bestämningen.
Till exempel omfattar denna parameter endast minne som används av SGA och PGA. Varje enskild session som ansluter till databasen kräver minne i samband med dess operativsystem eller serverprocess. Detta minneskrav lägger till. En av våra kunder har nästan 3 000 samtidiga anslutningar som äter upp cirka 16 GB minne utanför SGA och PGA. Klientens maskin har 64 GB minne och MEMORY_TARGET är inställd på 16 GB.