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.