DB2 - 缓冲池

  • 简述

    本章向您介绍数据库中的缓冲池。
    缓冲池
  • 介绍

    缓冲池是由数据库管理器分配的主内存空间的一部分。缓冲池的目的是从磁盘缓存表和索引数据。所有数据库都有自己的缓冲池。在创建新数据库时会创建一个默认缓冲池。它被称为“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 <bp_name> pagesize <size> 
    
    例子: [创建一个名为“bpnew”、大小为“8192”(8Kb) 的新缓冲池。]
    
    db2 create bufferpool bpnew pagesize 8192  
    
    输出
    
    DB20000I The SQL command completed successfully.  
    
  • 删除缓冲池

    在删除缓冲池之前,需要检查是否为它分配了任何表空间。
    语法: [删除缓冲池]
    
    drop bufferpool <bp_name>  
    
    例子:[删除名为“bpnew”的缓冲池]
    
    db2 drop bufferpool bpnew  
    
    输出
    
    DB20000I The SQL command completed successfully.