Oracle System Global Area (SGA)

mercoledì 5 novembre 2008 alle 05:19 | Pubblicato su Installation and Configuration | Lascia un commento
Tag: , ,

La SGA in Oracle è l’area di memoria principale condivisa dai vari processi di Oracle per la gestione dell’intero sistem RDBMS. La SGA comprende un numero di “componenti che sono pool di memoria usata per soddisfare particolari categorie di richieste. Ad esempio fra queste componenti c’è la Shared Pool (usata per allocare memoria per l’esecuzione dell’SQL e del PL/SQL), il Java Pool (usato per gli oggetti java) e la Buffer Cache (usata per il “caching” dei blocchi disco). Tutte le componenti della SGA allocano e deallocano unità di spazio chiamate “granuli”.  Oracle quindi tiene traccia dell’utilizzao della memoria della SGA in termini di numero di granuli per ognuna delle componenti.
La dimensione dei granuli dipende dalla dimensione totale della SGA e dalla piattaforma.  In generale, per dimensioni della SGA inferiori al GigaByte la dimensione dei granuli è di 4 MB, per dimensioni superiori è di 16 MB. Nel caso di Windows 32 bit la dimensioni dei granuli per SGA sopra il GigaByte è di 8 MB. La dimensione effettiva dei granuli è visualizzabile tramite la vista di sistema V$SGAINFO.
La dimensione del granulo è la stessa per tutte le componenti della SGA e quando si specifica la dimensione della componente, oracle arrotonda al multiplo superiore della dimensione del  granulo.
La dimensione massima della SGA può essere definita tramite il parametro statico SGA_MAX_SIZE; se questo parametro non viene specificato esplicitamente il suo valore viene derivato da oracle come somma di tutte le componenti definite in avvio (fixed SGA, variable SGA, redo log buffers).
Con la versione 10g Oracle ha introdotto l’Automati Shared Memory Management, nell’ambito più generale di quello che è stato chiamato CMI: common manageability infrastructure. Con il nuovo parametro SGA_TARGET si specifica una quantità di memoria che Oracle gestisce in automatico ed all’interno della quale dimensiona le principali componenti, che sono:

Oracle, se il parametro STATICS_LEVEL è impostato a TYPICAL o ALL analizza l’utilizzo e l’efficenza di ciascuna di queste componenti e le dimensiona dinamicamente di conseguenza, dando maggior memoria alle componenti che di volta in volta ne hanno maggior bisogno.
Rimango “fuori” da questa gestione automatica le seguenti componenti:

Se i parametri relativi alla dimensione di ciascuna delle componenti gestistate da ASMM sono settati tutti a zero allora si ha la piena gestione automatica di queste componenti, altrimenti i valori di questi parametri vengo presi come valore minimi di memoria da assegnare alla relativa componente.
SGA_TARGET è un parametro dinamico, sebbene io non consiglierei la sua modifica al volo. Rimango dinamici anche i parametri relativi alle singole componenti.

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: