APP下载

数据库缓冲池研究

2014-06-11吴昊

电脑迷 2014年5期
关键词:队列数据库

吴昊

摘 要 数据库是企业信息系统的基础,数据库管理软件是企业计算的核心。一个好的数据库决定着一个企业的管理,而数据库缓冲池的使用和优化,能使数据库的运行效率提高,并有助于数据库的设计、调优和故障诊断。本文主要从缓冲池的工作原理进行分析,并对缓冲池的设计提出建议。

关键词 DB2 缓冲池 数据库 队列

中图分类号:TP311.13 文献标识码:A

1研究背景

数据库是企业信息系统的基础,数据库管理软件是企业计算的核心。DB2数据库是一个典型关系型数据库管理软件,在国内以及全球有着广泛的应用。对DB2数据库中的缓冲池的设置与使用有全面和深入的了解,有助于数据库的设计、调优和故障诊断。一个好的数据库决定着一个企业的管理,而缓冲池的优化能使数据库的运行效率提高。

2缓冲池的概念

缓冲池(BUFFERPOOL),是数据库所使用的一块内存空间,用于进行数据的读取和更新。它是数据库级共享内存的重要组成部分。缓冲池的大小是以页为单位,页的大小(Pagesize)分为4K、8K、16K、32K,四种。每个数据库至少要设置一个BUFFERPOOL。

3缓冲池的分类

3.1默认缓冲池

数据库建立时,DB2会自动创建一个名为IBMDE—FAULTBP的缓冲池,其Pagesize为4KB。数据库中的所有表格空间可以共享这个缓冲池。

3.2隐藏缓冲池

当数据库启动时,会同时启动4个Pagesize分别为4K、8K、16K和32K的小型缓冲池。这些缓冲池在系统编目中看不到,它只有在主缓冲池(IBMDEFAULTBP或用户建立的缓冲池)无法启动时,才被使用。

3.3用户建立的缓冲池

由于表格空间的Pagesize必须与它所用的缓冲池的Pagesize一致,所以,如果用户创建了非4K的表格空间,那么就需要为这个表格空间创建单独的缓冲池。

4缓冲池中的数据

数据会在缓冲池中一直被保存,直到关闭这个数据库或者这个数据占用的内存需要被其他数据使用时才会删除。当SQL指令修改了缓冲池中的数据页后,数据页并不会马上因为事物的确认而被写回表格空间(磁盘)中,只有出现以下两种情况时,数据才会被写回表格空间中。

(1)当缓冲池中被更改的数据页所占的比例达到数据库参数(chngpgs—thresh)所设定的值时,缓冲池中被更改过的数据页就会被写回表格空间中。

(2)当缓冲池中已经没有足够的空间存放从磁盘调入的新数据时,DB2也会将缓冲池中被更改过的数据页写回表格空间中,腾出空间存放新调入的数据

5缓冲池对系统性能的影响

根据以上内容我们可以得出,缓冲池就是数据库响应SQL指令,就是进行数据处理的内存区域。当DB2执行SQL指令时,首先会去缓冲池寻找相关的数据页或者是相关的索引页,如果在缓冲池中寻找到了存在的所要的数据,就可以直接使用缓冲池中的数据,如果没有就可以从表格空间中将需要的数据调入缓冲池然后再使用。由于在内存和磁盘中读取数据的速度前者要比后者快很多,所以就需要设计多个大容量的缓冲池来缓存大量的数据页,这样做就可以提高缓冲池的命中率,减少磁盘读写,这样做就可以显著的提高数据读取速度。但是,如果总的缓冲池设置太大,导致没有足够的物理内存进行分配,那么DB2将会启用上面介绍的隐藏缓冲池,这种缓冲池容量非常小,使用时会发生大量的数据页交换,导致系统性能急剧下降,一个缓冲池容量的设置往往决定着一个数据库读取数据的速度。

6缓冲池的设计原则

由于缓冲池的大小会对数据库的运行性能产生很大的影响,所以缓冲池的设计至关重要,根据笔者的工作经验和相关技术资料,对缓冲池的设计提出如下几条建议:

(1)为数据库中所用到的每种Pagesize创建一个缓冲池,相同Page~size的表格空间共享同一个缓冲池,尽量不要创建过多的缓冲池,不然会增加管理的复杂性。

(2)将数据库中的表格按照访问的频繁程度,分别存放在不同的表格空间中,使用不同的缓冲池进行处理。避免因为对访问频度低的表格的一次访问,而将一些需要经常访问的数据页挤出缓冲池。

(3)要熟悉你所使用的操作系统,掌握操作系统的内存体系结构(是64位的还是32位的),确认DB2的内存寻址空间范围。对于64位的实例来说其寻址范围是2的64次方,空间足够大,只要有足够大的实际物理内存进行分配即可。但对于32位的实例来说其寻址空间范围是2的32次方,即4GB。不管实际物理内存有多大,实例、数据库的配置都受到4GB可寻址空间的限制,不同的操作系统其限制大小也不同,AIX大约为2GB,而HP则为800MB左右,所以要根据你的操作系统性能来设计缓冲池的大小。不要过大的设计缓冲池避免浪费内存缓冲池的创建决定着性能的好坏,合理使用内存。

7结束语

通过缓冲池对数据库的性能的影响发现,缓冲池直接影响数据库性能的好坏,往往一个公司的数据库的好坏就决定着这个公司的发展前景,如何使用缓冲池,设计缓冲池就是对整个公司的负责。同样缓冲池的设计不应过大或者分配过小,过大会导致浪费,过小则不能发挥。总体来说好的缓冲池的设计就代表着好的数据库,使数据库处理数据的速度明显的增快。

参考文献

[1] 庄济诚.DB2数据库管理与应用教程.清华大学出版社,2004.2.

[2] 牛新庄.循序渐进DB2一DBA系统管理、运维与应用案例.清华大学出版社,2009.

[3] 汤子瀛,杨成忠,哲凤屏.计算机操作系統.台湾:儒林图书公司,1995.

猜你喜欢

队列数据库
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
丰田加速驶入自动驾驶队列
数据库
数据库
向强军冲锋(队列歌曲)
数据库
数据库