📅  最后修改于: 2020-11-28 13:19:47             🧑  作者: Mango
本章向您介绍数据库中的缓冲池。
缓冲池是由数据库管理器分配的主内存空间的一部分。缓冲池的目的是从磁盘缓存表和索引数据。所有数据库都有自己的缓冲池。在创建新数据库时会创建一个默认的缓冲池。它称为“ 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 pagesize
示例:[要创建一个名称为“ bpnew”,大小为“ 8192”(8Kb)的新缓冲池。
db2 create bufferpool bpnew pagesize 8192
输出
DB20000I The SQL command completed successfully.
在删除缓冲池之前,需要检查是否为其分配了任何表空间。
语法:[删除缓冲池]
drop bufferpool
示例:[删除名为“ bpnew”的缓冲池]
db2 drop bufferpool bpnew
输出
DB20000I The SQL command completed successfully.