本章介紹數據庫緩沖池。
緩沖池是由數據庫管理分配一個主存空間部分。緩沖池的目的是從磁盤高速緩存表和索引數據。所有數據庫都有自己的緩沖池。默認緩沖池是在創(chuàng)建新數據庫時創(chuàng)建的。它被稱為“IBMDEFAULTBP”。根據用戶的要求,有可能創(chuàng)造一些緩沖池。在緩沖池,數據庫管理器放置表行的數據作為頁。當前頁停留在緩沖直到數據庫是關閉或直到空間被寫入新的數據。在緩沖的頁面,這是更新的數據,但不寫入到磁盤,被稱為“臟”的頁面。后在緩沖更新的數據頁寫入磁盤上,緩沖池是準備采取另一個數據。
每個表空間與數據庫中的一個特定的緩沖池相關聯(lián)。一個表空間與一個緩沖池相關聯(lián)。緩沖池和表空間的大小必須一致。多個緩沖池允許配置使用的數據庫,以提高其整體性能的內存。
緩沖池頁面的大小,當使用“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.
要創(chuàng)建數據庫服務器新的緩沖池,則需要兩個參數,即“緩沖池名”和“頁面大小”。下面的查詢執(zhí)行創(chuàng)建一個新的緩沖池。
語法:在下面的語法中,“bp_name”表示緩沖池的名字,'size'表示頁面大小,需要聲明的緩沖池(4K,8K,16K,32K)
db2 create bufferpool <bp_name> pagesize <size>
例如:要創(chuàng)建一個新的緩沖池名稱為“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.