DB2緩衝池


本章介紹數據庫緩衝池。

bufferpool

介紹

緩衝池是由數據庫管理分配一個主存空間部分。緩衝池的目的是從磁盤高速緩存表和索引數據。所有數據庫都有自己的緩衝池。默認緩衝池是在創建新數據庫時創建的。它被稱爲「IBMDEFAULTBP」。根據用戶的要求,有可能創造一些緩衝池。在緩衝池,數據庫管理器放置錶行的數據作爲頁。當前頁停留在緩衝直到數據庫是關閉或直到空間被寫入新的數據。在緩衝的頁面,這是更新的數據,但不寫入到磁盤,被稱爲「髒」的頁面。後在緩衝更新的數據頁寫入磁盤上,緩衝池是準備採取另一個數據。

表空間和緩衝池之間的關係

每個表空間與數據庫中的一個特定的緩衝池相關聯。一個表空間與一個緩衝池相關聯。緩衝池和表空間的大小必須一致。多個緩衝池允許配置使用的數據庫,以提高其整體性能的內存。

緩衝池大小

緩衝池頁面的大小,當使用「CREATE DATABASE」命令設置。如果不指定頁面大小,將採取默認的頁面大小,這是4KB。一旦緩衝被建立,因此不可能以後修改頁大小

在當前數據庫目錄列出了可用的緩衝池

語法:[下面的語法顯示所有可用的緩衝池在數據庫]

db2 select * from syscat.bufferpools   

例如:[要查看當前數據庫中可用的緩衝池]

db2 select * from syscat.bufferpools  

輸出

BPNAME      BUFFERPOOLID DBPGNAME   NPAGES      PAGESIZE    ESTORE 
NUMBLOCKPAGES BLOCKSIZE   NGNAME
------------------------------------------------------------ 
IBMDEFAULTBP                                                                                                                
 1 -                                                                                                  
 -2        4096 N                  0           0 -     
 
 1 record(s) selected.   

創建緩衝池

要創建數據庫服務器新的緩衝池,則需要兩個參數,即「緩衝池名」和「頁面大小」。下面的查詢執行創建一個新的緩衝池。

語法:在下面的語法中,「bp_name」表示緩衝池的名字,'size'表示頁面大小,需要聲明的緩衝池(4K,8K,16K,32K)

db2 create bufferpool <bp_name> pagesize <size> 

例如:要創建一個新的緩衝池名稱爲「bpnew」和大小「8192」(8KB)。]

db2 create bufferpool bpnew pagesize 8192  

輸出

DB20000I The SQL command completed successfully.  

刪除緩衝池

丟棄緩衝之前,需要檢查是否有任何表被分配給它。

語法:[要刪除的緩衝池]

drop bufferpool <bp_name>  

例如:要刪除名爲'bpnew「的緩衝池]

db2 drop bufferpool bpnew  

輸出

DB20000I The SQL command completed successfully.