DB2緩衝池
本章介紹數據庫緩衝池。
介紹
緩衝池是由數據庫管理分配一個主存空間部分。緩衝池的目的是從磁盤高速緩存表和索引數據。所有數據庫都有自己的緩衝池。默認緩衝池是在創建新數據庫時創建的。它被稱為“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.