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.