DB2 - Bufferpool
Questo capitolo introduce ai Bufferpool nel database.
introduzione
Il bufferpool è una parte di uno spazio di memoria principale allocato dal gestore database. Lo scopo dei bufferpool è di memorizzare nella cache i dati della tabella e dell'indice dal disco. Tutti i database hanno i propri bufferpool. Un bufferpool predefinito viene creato al momento della creazione del nuovo database. Si chiama "IBMDEFAULTBP". A seconda delle esigenze dell'utente, è possibile creare un numero di bufferpool. Nel bufferpool, il database manager inserisce i dati della riga della tabella come una pagina. Questa pagina rimane nel bufferpool finché il database non viene chiuso o finché lo spazio non viene scritto con nuovi dati. Le pagine nel bufferpool, che vengono aggiornate con i dati ma non vengono scritte sul disco, sono chiamate pagine "Dirty". Dopo che le pagine di dati aggiornate nel bufferpool sono state scritte sul disco, il bufferpool è pronto per ricevere altri dati.
Relazione tra tablespace e bufferpool
Ogni tablespace è associato a uno specifico pool di buffer in un database. Un tablespace è associato a un bufferpool. La dimensione del bufferpool e del tablespace deve essere la stessa. Più bufferpool consentono di configurare la memoria utilizzata dal database per aumentarne le prestazioni complessive.
Dimensioni bufferpool
La dimensione della pagina del bufferpool viene impostata quando si utilizza il comando "CREATE DATABASE". Se non si specifica la dimensione della pagina, verrà utilizzata la dimensione della pagina predefinita, che è 4KB. Una volta creato il bufferpool, non è possibile modificare la dimensione della pagina in un secondo momento
Elenco dei bufferpool disponibili nella directory del database corrente
Syntax: [La sintassi seguente mostra tutti i bufferpool disponibili nel database]
db2 select * from syscat.bufferpools
Example: [Per vedere i bufferpool disponibili nel database corrente]
db2 select * from syscat.bufferpools
Output:
BPNAME BUFFERPOOLID DBPGNAME NPAGES PAGESIZE ESTORE
NUMBLOCKPAGES BLOCKSIZE NGNAME
------------------------------------------------------------
IBMDEFAULTBP
1 -
-2 4096 N 0 0 -
1 record(s) selected.
Creazione del bufferpool
Per creare un nuovo pool di buffer per il server di database, sono necessari due parametri, ovvero "nome pool di buffer" e "dimensione della pagina". La seguente query viene eseguita per creare un nuovo bufferpool.
Sintassi: [Nella sintassi seguente, "bp_name" indica il nome del bufferpool e "size" indica la dimensione della pagina che devi dichiarare per i bufferpool (4K, 8K, 16K, 32K)]
db2 create bufferpool <bp_name> pagesize <size>
Example: [Per creare un nuovo bufferpool con il nome "bpnew" e la dimensione "8192" (8Kb).]
db2 create bufferpool bpnew pagesize 8192
Output
DB20000I The SQL command completed successfully.
Far cadere il bufferpool
Prima di rilasciare il bufferpool, è necessario controllare se gli è stato assegnato uno spazio tabella.
Syntax: [Per eliminare il bufferpool]
drop bufferpool <bp_name>
Example: [Per eliminare "bpnew" denominato bufferpool]
db2 drop bufferpool bpnew
Output
DB20000I The SQL command completed successfully.