Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
RDSper la memoria Postgree SQL
RDSper Postgre la SQL memoria è divisa in condivisa e locale.
Memoria condivisa in per RDS Postgre SQL
RDSfor Postgre SQL alloca la memoria condivisa all'avvio dell'istanza. La memoria condivisa è divisa in più sottoaree. Di seguito è possibile trovare una descrizione dei più importanti.
Buffer condivisi
Il buffer pool condiviso è un'area di SQL memoria RDS per Postgre che contiene tutte le pagine che sono o sono state utilizzate dalle connessioni delle applicazioni. Una pagina è la versione di memoria di un blocco disco. Il buffer pool condiviso memorizza nella cache i blocchi di dati letti dal disco. Il pool riduce la necessità di rileggere i dati dal disco, rendendo il database più efficiente.
Ogni tabella e indice vengono memorizzati come una matrice di pagine di dimensioni fisse. Ogni blocco contiene più tuple, che corrispondono alle righe. Una tupla può essere memorizzata in qualsiasi pagina.
Il buffer pool condiviso ha memoria finita. Se una nuova richiesta richiede una pagina che non è in memoria e non esiste più memoria, For Postgre SQL elimina una pagina usata meno frequentemente RDS per soddisfare la richiesta. La politica di sfratto è implementata da un algoritmo di sweep dell'orologio.
Il parametro shared_buffers
determina la quantità di memoria che il server dedica alla memorizzazione nella cache dei dati.
Buffer Write ahead log () WAL
Un buffer write-ahead log (WAL) contiene i dati delle transazioni che, RDS per PostgreSQL, successivamente vengono scritti nella memoria persistente. Utilizzando il WAL meccanismo, RDS per SQL Postgre puoi fare quanto segue:
-
Recuperare i dati dopo un errore
-
Ridurre l'I/O del disco evitando scritture frequenti su disco
Quando un client modifica i dati, RDS for Postgre SQL scrive le modifiche nel buffer. WAL Quando il client emette unCOMMIT
, il WAL processo di scrittura scrive i dati della transazione nel file. WAL
Il wal_level
parametro determina la quantità di informazioni scritte inWAL.
Memoria locale RDS per Postgre SQL
Ogni processo di back-end assegna memoria locale per l'elaborazione delle query.
Area di memoria di lavoro
L’area di memoria di lavoro contiene dati temporanei per query che eseguono ordinamenti e hash. Ad esempio, una query con clausola ORDER BY
esegue un ordinamento. Le query utilizzano tabelle hash nei join e nelle aggregazioni hash.
Il parametro work_mem
indica la quantità di memoria da utilizzare dalle operazioni di ordinamento interno e dalle tabelle hash prima di scrivere su file di disco temporanei. Il valore predefinito è 4 MB. È possibile eseguire più sessioni contemporaneamente e ogni sessione può eseguire operazioni di manutenzione in parallelo. Per questo motivo, la memoria di lavoro totale utilizzata può essere costituita da multipli dell’impostazione work_mem
.
Area memoria di lavoro di manutenzione
L’area di memoria di lavoro di manutenzione memorizza nella cache i dati per le operazioni di manutenzione. Queste operazioni includono l'aspirazione, la creazione di un indice e l'aggiunta di chiavi esterne.
Il parametro maintenance_work_mem
specifica la quantità massima di memoria da utilizzare nelle operazioni di manutenzione. Il valore predefinito è 64 MB. Una sessione di database può eseguire solo un'operazione di manutenzione alla volta.
Area buffer temporanea
L’area buffer temporanea memorizza nella cache le tabelle temporanee per ciascuna sessione del database.
Ogni sessione assegna buffer temporanei secondo necessità fino al limite specificato. Quando la sessione scade, il server cancella i buffer.
Il parametro temp_buffers
imposta il numero massimo di buffer temporanei utilizzati da ogni sessione. Prima del primo utilizzo di tabelle temporanee all'interno di una sessione, è possibile modificare il valore temp_buffers
.