计算缓冲池大小

缓冲池是虚拟存储区域,用于满足一个或多个表空间或索引的缓冲需求。 所有 Db2 子系统都使用虚拟缓冲池,由中央存储或辅助存储提供支持。 缓冲池在2GB以上创建。

关于本任务

虚拟缓冲池 :为获得最佳效果,请为每个并发用户至少预留 100 KB 的缓冲池空间。 为提高性能,建议文件大小为300 KB或更大。 访问少量数据的简单SQL语句所需内存可能少于此值。 访问大量数据的复杂SQL语句可能需要更多内存。 动态 SQL 语句可能需要动态绑定,这需要为目录表和索引提供额外的缓冲区。 如果SQL语句需要访问目录,则目录页面集也需要额外的缓冲区。 更新、删除和插入语句需要更多的缓冲区来将更新后的页面保存在缓冲池中。

为了有效支持预取,请为每个同时访问的对象预留400 KB的空间。 例如,如果SELECT语句包含单个表空间扫描,则允许该语句占用400 KB。 再举一个例子,假设您的SELECT语句包含一个三表排序合并连接,每个表都使用一个索引,并行度为4。 为了获得一个粗略的估计,计算访问的对象总数,然后将对象数量乘以400 KB,再乘以并行度。 在这个例子中,公式为(3个表格+3个索引+1个排序工作文件)x 400 KB x 4。 此语句建议使用11200 KB。 通常,这些对象应定义在单独的缓冲池中,以便更好地控制性能。 例如,您至少应该拥有三个独立的缓冲池:一个用于索引,一个用于表,一个用于工作文件。

在安装过程中,您可以在安装面板上设置缓冲池的大小。 之后,您可以使用ALTER BUFFERPOOL命令更改多达50个缓冲池的大小和其他属性,用于4 KB页面集、10个缓冲池用于8 KB页面集、10个缓冲池用于16 KB页面集以及10个缓冲池用于32 KB表空间。 ALTER BUFFERPOOL命令可以在 Db2 运行时动态进行更改。

重要提示: 为缓冲池分配的存储空间不得超过缓冲池可用实际存储空间。 如果您尝试使用的空间超过可用实际存储空间,性能将会受到影响。
Db2 将分配给虚拟缓冲池的存储总量限制在实际存储量的两倍左右。 如果您为虚拟缓冲池指定的数量超过此值, Db2 将在启动期间分配缓冲池,直到实际存储量达到两倍。 Db2 然后按如下方式分配剩余的缓冲池:
页面大小 页数
4 KB 2,000 美元
8 KB 1000
16 KB 500
32 KB 250
达到这些存储限制后,除非增加 z/OS® 映像的实际可用存储量,否则无法增加虚拟缓冲池的存储量。

过程

计算子系统的虚拟缓冲池大小:

请使用下表。

表 1. 虚拟缓冲池大小计算
虚拟缓冲池计算 缺省值
缓冲器 BP0 ____ × 4 KB = _____ 20,000 × 4 KB = 80,000 千字节
缓冲器 BP1 +____ × 4 KB = _____ + 0 × 4 KB = 0 KB
缓冲器 BP2 +____ × 4 KB = _____ + 0 × 4 KB = 0 KB
.      
.      
.      
缓冲器 BP49 +____ × 4 KB = _____ + 0 × 4 KB = 0 KB
缓冲器 BP8K0 +____ × 8 KB = _____ + 1000 × 8 KB = 8000 KB
缓冲器 BP8K1 +____ × 8 KB = _____ + 0 × 8 KB = 0 KB
.      
.      
缓冲器 BP16K0 +___ × 16 KB = ____ + 500 × 16 KB = 8000 KB
缓冲器 BP16K1 +___ × 16 KB = ____ + 0 × 16 KB = 0 KB
.      
.      
缓冲器 BP32K +___ × 32 KB = ____ +250 × 32 KB = 8000 KB
.      
.      
缓冲器 BP32K9 +___ × 32 KB = ____ + 0 × 32 KB = 0 KB
  = ____   = 104,000KB