在DB2中,bufferpool
是主存储器空间的一部分,由数据库管理器分配。 缓冲池的目的是从磁盘缓存表和索引数据。 所有数据库都有自己的缓冲池。
在创建新数据库时创建默认缓冲池。 它被称为“IBMDEFAULTBP”。 可以根据需要创建多个缓冲池。在缓冲池中,数据库管理器将表行数据作为页面放置。此页面保留在缓冲池中,直到数据库关闭或用新数据写入空间。
缓冲池中的页面用数据更新但未写入磁盘,称为“脏”页面。 在缓冲池中更新的数据页写入磁盘后,缓冲池已准备好接收另一个数据。
缓冲池的默认页面大小为4KB
。
当使用 CREATE DATABASE
命令时,将设置缓冲池大小。 如果未指定缓冲池的大小,则将其设置为4KB
。
创建缓冲池后,以后无法修改页面大小。可列出可用的Bufferpool,列出当前数据库中的所有可用缓冲池。
语法:
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.