DB2缓冲池

缓冲池:

一、缓冲池是指从磁盘读取表和索引数据时,数据库管理器分配的用于高速缓存这些表和索引数据的内存区域。每一个DB2数据库必须至少要有一个缓冲池。数据库中的数据访问都要经过缓冲池。读数据要先读到缓冲池中然后再提交应用程序,写数据也要先写到缓冲池中再I/O操作。

缓冲池是影响数据性能的最大参数,所以必须合理地设计缓冲池。

  创建数据库时,系统会自动创建一个IBMDEFAULTBF的默认缓冲池,所有表空间都共享该缓冲池。可以create、drop、alter buffpool 。

足够的缓冲池大小是数据库拥有良好性能的关键所在,因为它可以减少磁盘I/O这一耗时操作。大型缓冲池还会对查询优化产生影响,因为更多的工作可以在内存中完成,而无需进行I/O。

创建缓冲池

CREATE BUFFERPOOL 语句的示例

CREATE BUFFERPOOL BP2

SIZE 2000

PAGESIZE 8K

 

将表空间加载到缓冲池中

ALTER TABLESPACE USERSPACE3 BUFFERPOOL BP2;

删除缓冲池

DROP BUFFERPOOL BP2;

修改缓冲池大小

ALTER BUFFERPOOL "BP2" IMMEDIATE SIZE 5000;


查看缓冲池属性

SELECT * FROM SYSCAT.BUFFERPOOLS

SELECT TBSPACE,BUFFERPOOLID FROM SYSCAT.TABLESPACES  --查询表空间与哪个缓冲池相关联


缓冲池命中率:表明数据库管理器不需要从磁盘装入页(即该页已经在缓冲池中)就能处理页请求的时间百分比。

公式如下:

在DB2中,BUFFERPOOL的命中率的计算公式是:

1 - ( 缓冲池数据物理读取 + 缓冲池索引物理读取 ) / ( 缓冲池数据逻辑读取 + 缓冲池索引逻辑读取 )

缓冲池的命中率越高,使用磁盘I/O的频率就越低。

(1 -((buffer pool data physical reads + buffer pool index physical reads) /(buffer pool data logical reads + pool index logical reads))) *100%


如:C:\Users\Administrator>db2 select substr(bp_name,1,12),total_hit_ratio_percent,data_hit_ratio_percent,index_hit_ratio_percent

 from sysibmadm.bp_hitratio;

IBMDEFAULTBP 99.8999.999.86

BUFFER4     61.5559.3686.26

BUFFER8     91.9191.6495.22

BUFFER16     99.8699.8750.53

BUFFER32     99.2399.23(null)


你可能感兴趣的:(DB2)