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.  
廣告