浅析达梦动态缓冲区机制

数据库管理系统常常会把最近访问过的数据页复制到内存块中,下次再需要访问该数据页时,就去访问对应的内存块,而不需要真正读写实际文件。这种方式在大多数情况下可以大大减少文件IO次数,从而有效提高系统的数据访问效率。映射物理数据页的内存块称为缓冲页,而系统存放所有缓冲页的地方就是缓冲区。

 

达梦数据库(以下简称DM)使用的缓冲区机制经历了两个阶段:静态缓冲区机制和动态缓冲区机制,两者各有特点。

 

静态缓冲区机制会在按照相关参数创建固定的缓冲区供系统使用,当缓冲区用完时,系统根据淘汰策略对旧页进行淘汰。该机制的缺点是当系统内存有大量剩余空间时也无法有效利用,频繁的淘汰缓冲区操作对系统性能存在一定影响。

 

动态缓冲区机制会根据当前缓冲区的一些参数,例如淘汰率、页的空闲度等参数来计算缓冲区压力,达到系统设定的阀值,立即进行缓冲区扩展,将缓冲区压力控制在可接受范围内,满足应用需求。但是盲目的扩展会造成系统中其他应用可使用的内存减少,造成资源紧张。

 

从以上分析看出,静态缓冲区机制存在资源无法有效利用和缓冲区压力过大的弊端,如果预先估计出系统大致使用的缓存大小,设置合理的参数,可以缓解该机制的不足,但是系统应用是动态的,存在不可预知性,因此该方法无法从根本上解决存在的缺陷。相比较而言,动态缓冲区机制的设计原理基本可以解决静态缓冲区存在的问题,关键是要合理控制缓冲区扩展的度。

 

DM6实现的动态缓冲区机制,根据多因素的考虑和精确的计算,大部分情况下给系统带来了性能上的提升。DM6的动态缓冲区机制主要包含以下四个方面:

1)确定合适的扩展机制                                                                          

何时进行缓冲区的扩展很关键,并不是当缓冲区完全用完或者缓冲区有较大可用空间时进行扩展。DM对于缓冲区的压力设定一个警戒线,达到警戒线则进行扩展。缓冲区的压力值主要根据缓冲区的淘汰率、页的空闲度和更新页的比例三个参数进行计算。经过综合的判断和精确的计算,DM会在合适的时间进行缓冲区扩展。默认情况下每次扩展2000页。

2)确定合适的收缩机制

缓冲区盲目的扩展是不可取的,如何在有限的资源上做无限的事?DM设计了缓冲区的收缩机制来达到对内存的良性循环使用,根据缓冲区的空闲度判断当前是否可以进行收缩。默认情况下每次收缩2000页。

3)人为干预机制

DM根据普通的应用情况,设定了缓冲区参数的默认值供系统使用。考虑到实际应用的易变性和特殊性,DM允许人为设置相关参数,满足用户特殊需求。在配置文件和系统运行时手动控制缓冲区的行为。例如:配置文件中设置BUFFER来指定初始缓冲区大小、EBUF_SIZE来设置每次扩展缓冲区大小、DBUF_MODE来设置是否启动动态缓冲区机制(0:静态模式;1:动态模式;2:手动模式);系统运行时,通过SP_SET_BUF_MODE来设置缓冲区机制类型、SP_EXPAND_BUFFER扩展指定大小的缓冲区、SP_TRUNC_BUFFER释放缓冲区。

4)约束机制

为了更好的使用动态缓冲区机制,DM通过约束机制对部分操作进行保护,防止发生问题。例如,当DBUF_MODE0时,禁止人为调整缓冲区参数,只有为1或者2时,才允许手动调整;缓冲区的扩展总数设置上限,避免特殊情况下无休止地扩展缓冲区。

 

以上对DM动态缓冲区机制进行了简要介绍,下面举例说明使用两种机制的性能差别。

测试背景:8K页大小  默认参数  单核机器  2.66GHz  1G RAM

create table t1(c1 int,c2 int,c3 char(500),c4 char(500),c5 char(500),c6 char(500),c7 char(500),c8 char(500);

create table t2(d1 int);

测试语句:insert into t2 select c1 from t1;

数据量

静态缓存机制耗时

动态缓存机制耗时

动态缓存机制提高百分比

5

15.6

9.5

39.2%

10

24.2

17.8

26.5%

 

测试背景:8K页大小  默认参数  单核机器  2.66GHz  1G RAM

create table t1(c1 int,c2 int,c3 char(500),c4 char(500),c5 char(500),c6 char(500),c7 char(500),c8 char(500);

测试语句:create index it1c1 on t1(c1);

数据量

静态缓存机制耗时

动态缓存机制耗时

动态缓存机制提高百分比

5

10.2

8.6

15.7%

10

16.7

14.1

15.6%

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23392679/viewspace-627978/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23392679/viewspace-627978/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值