扫码一下
查看教程更方便
本章向大家介绍数据库中的缓冲池。
缓冲池是由数据库管理器分配的主内存空间的一部分。 缓冲池的目的是从磁盘缓存表和索引数据。 所有数据库都有自己的缓冲池。 在创建新数据库时会创建默认缓冲池。 它称为“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 -
要为数据库服务器创建一个新的缓冲池,我们需要两个参数,即“缓冲池名称”和“页面大小”。 执行以下查询以创建新的缓冲池。
在下面的语法中,'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.