位置:首頁 > 數據庫 > DB2教學 > DB2緩衝池

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.