Db2 简明教程

DB2 - Bufferpools

本章为您介绍了数据库中的缓冲池。

bufferpool

Introduction

缓冲池是指数据库管理器分配的主存储空间部分。缓冲池的目的是从磁盘缓存表和索引数据。所有数据库都有自己的缓冲池。在新数据库创建时,会创建一个默认缓冲池。它被称为“IBMDEFAULTBP”。根据用户要求,可以创建多个缓冲池。在缓冲池中,数据库管理器将表行数据作为一个页面放置。此页面会一直驻留在缓冲池中,直到关闭数据库或用新数据写入该空间。缓冲池中已更新数据但未写入磁盘的页面称为“脏”页面。在缓冲池中更新的数据页面写入磁盘后,缓冲池就准备好接收其他数据。

Relationship between tablespaces and bufferpools

每个表空间都与数据库中的特定缓冲池相关联。一个表空间与一个缓冲池相关联。缓冲池和表空间的大小必须相同。多个缓冲池允许您配置数据库使用的内存,以提高其整体性能。

Bufferpool sizes

在使用“CREATE DATABASE”命令时设置缓冲池页面的大小。如果不指定页面大小,它将采用默认页面大小,即 4KB。创建缓冲池后,以后无法修改页面大小

Listing the available bufferpools in the current database directory

Syntax : [下面的语法显示数据库中所有可用的缓冲池]

db2 select * from syscat.bufferpools

Example : [要查看当前数据库中的可用缓冲池]

db2 select * from syscat.bufferpools

Output:

BPNAME      BUFFERPOOLID DBPGNAME   NPAGES      PAGESIZE    ESTORE
NUMBLOCKPAGES BLOCKSIZE   NGNAME
------------------------------------------------------------
IBMDEFAULTBP
 1 -
 -2        4096 N                  0           0 -

 1 record(s) selected.

Creating the bufferpool

要为数据库服务器创建新的缓冲池,您需要两个参数,即“缓冲池名称”和“页面大小”。执行以下查询以创建新的缓冲池。

语法:[在下面的语法中,“bp_name”表示缓冲池名称,“size”表示您需要为缓冲池声明的页面大小 (4K、8K、16K、32K)]

db2 create bufferpool <bp_name> pagesize <size>

Example : [要创建一个名称为“bpnew”、大小为“8192”(8Kb) 的新缓冲池。]

db2 create bufferpool bpnew pagesize 8192

Output

DB20000I The SQL command completed successfully.

Dropping the bufferpool

在删除缓冲池之前,需要检查是否有表空间已分配给它。

Syntax : [要删除缓冲池]

drop bufferpool <bp_name>

Example : [要删除名为“bpnew”的缓冲池]

db2 drop bufferpool bpnew

Output

DB20000I The SQL command completed successfully.