dbheap - Database heap parametro di configurazione

È possibile utilizzare questo parametro per limitare la quantità massima di memoria assegnata per l'heap del database. La memoria aggiuntiva viene aggiunta automaticamente per i requisiti di memoria critica.
Per impostazione predefinita, dbheap è impostato su AUTOMATIC, il che significa che la dimensione dell'heap del database può aumentare se necessario. Questo aumento è soggetto ai limiti di database_memory, instance_memorye di memoria di sistema.
Tipo di configurazione
Database
Tipo di parametro
Configurabile online (richiede una connessione al database)
Configurabile da un membro in un Db2 pureScale ambiente o in un ambiente di database partizionato
Classe di propagazione
Immediato
Default [ intervallo]
Su sistemi operativi Linux e UNIX
AUTOMATICO [AUTOMATICO, 32 - 2147483647]
  • Il valore predefinito è AUTOMATICO con un valore sottostante di 1200.
Sui sistemi operativi Windows
AUTOMATICO [AUTOMATICO, 32 - 2147483647]
  • Su 32 - bit architetture, il valore predefinito per un server autonomo è AUTOMATICO con un valore sottostante di 300.
  • Su 64 - bit architetture, il valore predefinito è AUTOMATICO con un valore sottostante di 600.
Nota: Il valore predefinito è soggetto a modifiche da parte di Configuration Advisor dopo la creazione del database Db2® Configuration Advisor dopo la creazione iniziale del database.
Unità di misura
pagine (4 KB)
Quando assegnato
Il valore fisso o sottostante di dbheap e una quantità di memoria interna per i requisiti critici è riservata dalla memoria del database all'attivazione del database. L'heap del database viene assegnato come richiesto.
Quando liberato
Le assegnazioni di memoria vengono liberate quando non sono più necessarie. Tutta la memoria assegnata nell'heap del database viene liberata quando il database viene disattivato.

Esiste un heap di database per database, e viene utilizzato per una varietà di scopi critici al supporto delle attività di database. Molti requisiti noti, come il buffer di log, vengono valutati al momento dell'attivazione del database. Questi requisiti interni, insieme al valore dbheap configurato fisso o sottostante, contribuiscono alla dimensione della memoria del database iniziale e costituiscono una riserva della memoria del database per l'heap del database. Ulteriori requisiti che non fanno parte del calcolo interno includono una cache per i metadati della tabella, che si accumula come tabelle a cui si accede.

La prenotazione dell'heap del database iniziale include sia il valore configurato che il requisito calcolato internamente. Questa prenotazione iniziale è un limite hard forzato se l'heap del database è impostato su un valore fisso. Quando il parametro dbheap viene lasciato all'impostazione AUTOMATIC predefinita, l'heap del database può aumentare oltre la prenotazione iniziale e utilizzare l'eventuale eccedenza di memoria del database rimanente. Inoltre, se il parametro database_memory è impostato su AUTOMATIC, l'heap del database può aumentare ulteriormente aumentando automaticamente la dimensione di database_memory .

I requisiti di memoria riservata del database dipendono da una varietà di fattori tra cui il design di database, l'attività di applicazione e la configurazione. Si consiglia di lasciare l'impostazione a AUTOMATICA con un valore sottostante basso, come ad esempio il valore predefinito. L'impostazione dbheap viene modificata in AUTOMATIC quando si migra a Db2 Versione 9.5 o superiore dalle release precedenti o quando si applicano i suggerimenti dall'advisor di configurazione di Db2 .

Alcuni dei requisiti di memoria chiave sono:
  • Un buffer di log di dimensione LOGBUFSZ, che viene allocato all'attivazione del database. Questo fa parte dell'assegno di memoria riservata del database interno.
  • Circa 100KB viene assegnato per ogni tabella compressa a cui si accede. Se si utilizza il partizionamento della tabella, questa quantità è per partizione da tabella. Fino a 100MB è richiesto per ogni tabella a base di colonne a cui si accede. Questi requisiti di memoria non sono inclusi nella dimensione heap del database iniziale e devono essere inclusi in qualsiasi valore dbheap fisso. Questi metadati vengono memorizzati nella cache mentre il database è attivo.
  • Se AUDIT_BUF_SIZE è impostato su un valore diverso da zero, due buffer della dimensione specificata vengono assegnati durante l'attivazione del database. Questo è incluso nell'assegno di memoria riservata del database interno.
  • Un'indennità per due buffer HADR è fatta per la prenotazione dell'heap del database iniziale. Ad esempio, se DB2_HADR_BUF_SIZE è impostato su 256000 pagine 4KB , circa 2GB viene aggiunto alla prenotazione dell'heap del database iniziale dalla memoria del database. Questo fa parte dell'assegno di memoria riservata del database interno, e si verifica sia sui database primari che in standby per supportare le risorse necessarie per le operazioni di failover.
  • Circa 100MB viene allocato di fronte al fine di supportare la strumentazione della diagnostica. Questo è incluso nell'assegno di memoria riservata del database interno.

Monitoraggio

Il valore dbheap che si configura rappresenta solo una parte dell'heap del database assegnato. Come documentato, viene aggiunto un importo extra all'heap del database per rendere conto dei requisiti critici. Di conseguenza, è normale che l'utilizzo della memoria heap del database superi il valore configurato dall'utente per il parametro dbheap .

È possibile monitorare l'utilizzo dell'heap del database utilizzando la funzione tabella MON_GET_MEMORY_POOL . Ad esempio, la seguente query:
select memory_pool_used, memory_pool_used_hwm 
from table (mon_get_memory_pool(null,null,null)) 
where memory_pool_type='DATABASE'
Restituisce i valori di memory_pool_used e memory_pool_used_hwm in unità KB:
MEMORY_POOL_USED     MEMORY_POOL_USED_HWM
-------------------- --------------------
            140574            140574

  1 record(s) selected.

È inoltre possibile utilizzare il comando db2pd -db <database_name> -mempools per monitorare l'utilizzo dell'heap database.