DB2数据库在运行时会占用不少的系统内存。DB2按三个级别来管理内存(由OSS组件向其他组件提供):内存集、内存池和内存块。内存块组成内存池。内存池属于一个内存集。内存集里有多个内存池。缓冲池(BUFFERPOOL)就其中的一种内存池,这类型内存池消耗的内存数量最大。BUFFERPOOL里装载的是从表空间里读进的页(数据或索引)。
BUFFERPOOL可以有多个。每一个都有自己的配置信息。这些配置信息存放在SQLBP.1文件(放于实例目录下,SQLBP.2是其备份)和系统编目表SYSCAT.BUFFERPOOLS。
SQLBP.1文件中有两种重要的信息:SQLB_BUFFERPOOL_HEARDER记录和SQLB_BUFFERPOOL_CB记录。
SQLB_BUFFERPOOL_HEARDER记录:
1)保存当前BUFFPERPOOL的个数
2)哪些BUFFERPOOL使用了标准页大小和数量,哪些使用了非标准页大小和数量
SQLB_BUFFERPOOL_CB记录:
1)一个BUFFPERPOOL对应一条SQLB_BUFFERPOOL_CB记录
2)占256字节
2)包含:BUFFERPOOL的名称、ID、页大小、页数、lifeLSN
DB2的BUFFPERPOOL是以页为单位来管理的。每一页有一个BP