无论是CPU芯片,操作系统还是Web服务器等方方面面,都会使用一个非常重要的技术:缓存。CPU和内存之间的高速缓存,内存和外设之间的系统缓存,局域网与外部网络之间的Web缓存服务器。。。这些“缓存”的具体实现方式各不相同,但原理和目的都是一样的:在高速设备上预存数据以期直接通过高速设备完成读写而避免低速设备上的数据传输,从而提高系统性能。
缓冲池(BufferPool)
对于数据库管这种对性能要求极高的系统而言,缓存自然也是不可少的。数据库中的缓存称为缓冲池,缓冲池存在的唯一目的就是提高数据库系统性能。
缓冲池本质上是分配给数据库管理器管理的一块内存空间,用于读写数据页。(包括表行和索引数据页。内存中表行数据页称为缓存表)由于从内存访问数据比从磁盘访问数据快得多(访问磁盘是典型的I/O操作,一次I/O大概耗时0.0125S),通过将部分常用或者需要预取的数据存放在缓冲池以便系统直接访问和操作可以减少磁盘I/O,合理的缓冲池空间和好的缓冲池页面替换算法(提高命中率)可以大大提高数据库系统的性能。
注意分配给DB2的内存空间不仅仅是缓冲池,还包括包缓存空间,日志缓存空间等等一些其他的内存空间,其中缓冲池占了DB2内存的大部分。
创建数据库时,会创建一个名为 IBMDEFAULTBP 的缺省缓冲池,所有的表空间都共享该缓冲池。可以使用 CREATE BUFFERPOOL 语句添加更多的缓冲池。缓冲池的缺省大小是 BUFFPAGE 数据库配