本发明专利技术的实施方式提供了用于在关系数据库中组织数据记录的方法和设备,其中该方法包括:为多个数据记录分别建立索引项,其中每个索引项包括计数器;对于受到随机访问的数据记录,更新相应索引项中的计数器的数值;以及基于多个计数器的数值,重组所述多个数据记录。利用本发明专利技术的实施方式的方法和设备,可以有效地提高加载数据记录的缓冲池的命中率而不影响对数据记录的顺序访问和插入操作的性能。
【技术实现步骤摘要】
本专利技术的各实施方式涉及数据记录的处理,并且更具体地涉及在关系数据库中组织数据记录的方法、设备和相关计算机程序产品。
技术介绍
当前已经开发了许多数据管理系统来对数据记录进行有效地访问和组织。在这些数据管理系统中,关系数据库是企业级市场中占主导地位的数据管理系统。随着访问的数据量的不断増加,对该关系数据库的性能要求也变得越来越高。以大型银行的银行卡业务为例,由于使用银行卡的客户众多,每天关系数据库可能需要处理数以百万计的在线交易处理(简称“0LTP”),例如对账户信息的查询和更新。通过分析这些事务,可以发现关系数据库的性能瓶颈通常在于将账户信息加载进存储器(所谓的缓冲池)时的同步I/O操作。因此,如何有效提高缓冲池的命中率以便改进访问数据的效率是克服这ー性能瓶颈的关键。另外,现有的数据组织策略是将数据记录以数据页为最小单位进行组织。尽管随机数据访问通常仅需要读取或写入ー个数据记录,但关系数据库不得不将整个数据页加载进缓冲池。这样,可能许多内存将被分配给不常被访问的数据记录,这无疑造成了缓冲池的浪费,从而降低了缓冲池的命中率。为了提高缓冲池的命中率,已经提出了如下的多种可能解决方案,其中包括I)数据预取机制,该机制将所需的数据记录预先加载到缓冲池中。然而,由于该数据预取机制要求数据库的优化器预先知道数据访问的模式,而对于如上所述的账户信息查询和更新的数据访问情形来说,由于下一次的数据访问行为(可以称之为随机数据访问)很难预测,优化器无法预先准确知道数据访问的模式,因此改进此类的随机数据访问性能仍是ー个巨大的挑战。2)增加缓冲池大小或优化缓冲池。通过增加加载数据记录的缓冲池的大小,更多的数据记录可以被保存在内存中。但该解决方案成本较高,此外也不太可能获得与数据表大小相同或接近的内存大小。另外,还可以对缓冲池进行优化。例如,基于历史缓冲池命中率趋势来自动地设置缓冲池大小(Heuristic automated method forideal bufferpooltuning in a computer database,Scott R. Hayes,2001 system and Method to improveprocessing time of Database by CacheOptimization, Hans-Juergen Bildhaeuser,2006)以及压缩缓冲池中的数据记录以减小内存的使用量。然而,这样的优化解决方案并不直接针对随机数据访问的属性-难以预测性。3)改变数据结构。例如,一些应用从主表将经常使用与不经常使用的数据记录归档到若干个表。然而,该解决方案需要对应用进行显著的改变。同时,类似生成报告的批处理可能会变得复杂,因为数据被分配到多个表,这将令应用逻辑难以控制。 4)以文件系统或操作系统中组织数据的方式来组织数据记录。例如,频繁使用的数据应该存储在快速的存储设备中。然而,关系数据库中的数据记录是按照聚集索引的顺序进行存储的,如文件系统或操作系统的数据组织方式将影响数据库中数据记录的顺序访问和插入操作性能。
技术实现思路
因而需要一种能够在关系数据库中高效地组织数据记录的方法、设备和计算机程序产品,从而有效地提高缓冲池的命中率而不影响对数据记录的顺序访问和插入操作的性倉^:。本专利技术的一个实施方式提供了一种用于在关系数据库中组织数据记录的方法。该方法包括为多个数据记录分别建立索引项,其中每个索引项包括计数器;对于受到随机访问的数据记录,更新相应索引项中的计数器的数值;以及基于多个计数器的数值,重组所 述多个数据记录。本专利技术的另ー实施方式提供了一种用于在关系数据库中组织数据记录的设备。该设备包括索引项建立装置,用于为多个数据记录分别建立索引项,其中每个索引项包括计数器;索引项更新装置,用于对于受到随机访问的数据记录,更新相应索引项中的计数器的数值;以及重组装置,用于基于多个计数器的数值,重组所述多个数据记录。根据本专利技术的各实施方式,通过监视对数据记录的随机访问的次数,井根据对随机访问次数的历史性数据的分析,将数据记录划分在不同的物理分区,从而实现了数据记录的高效存储,有效地提高了缓冲池的命中率,同时没有影响到数据记录的聚集属性。附图说明结合附图并參考以下详细说明,本专利技术各实施方式的特征、优点及其他方面将变得更加明显,在附图中图I示意性示出了根据本专利技术一个实施方式的用于在关系数据库中组织数据记录的方法的流程图;图2示意性示出了根据本专利技术一个实施方式所形成的索引结构;图3是示意性示出根据本专利技术一个实施方式的索引项中的计数器更新的示图;图4是示意性示出了根据本专利技术一个实施方式的基于索引项中计数器的数值重组多个数据记录的示图;以及图5示意性示出了根据本专利技术一个实施方式的用于在关系数据库中组织数据记录的系统结构图。具体实施例方式本专利技术的各实施方式提供了用于在关系数据库中组织数据记录的方法、设备和计算机程序产品。在一个实施方式中,对用于随机访问数据记录的索引项增加计数器,该计数器用于在对数据记录进行随机访问时对该随机访问的行为进行计数。接着,基于该记录的计数器的数值,重组多个数据记录。在本专利技术的各实施方式中,数据记录表示存储在数据页中的结构化数据项(如图3中示出的数据页中的每条账户信息,稍后将描述到),而随机访问行为表示在某段时间内对数据库的多次访问行为(例如,查询、更新或删除等行为)之间没有太多的关联性,因而数据库很难预测下次哪些数据记录将被访问到。这样的随机访问行为不同于对数据库的顺序访问行为,顺序访问行为通常指多次访问行为之间具有关联性,例如,按特定的顺序访问数据库的报表操作,数据库可以根据该顺序预测哪些数据记录将在未来被访问到,即而可以执行预取操作。本专利技术的各实施方式利用各个数据记录受随机访问的历史次数,将各个数据记录分配到不同的物理分区,例如将经常受随机访问的数据记录存储在相同或连续的数据页,从而在被一起加载进缓冲池时,有效地提高了缓冲池的命中率。同吋,由于在分配到不同的物理分区时,考虑了数据记录的聚集属性,从而不会对数据记录的例如顺序访问和插入等操作的操作性能造成影响。附图中的流程图和框图,图示了按照本专利技术各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。图I示意性示出了根据本专利技术一个实施方式的用于在关系数据库中组织数据记录的方法100的流程图。如图I所示,方法100开始于步骤SlOl。在步骤S102中,方法100为多个数据记录分别建立索引项,其中每个索引项包括计数器。下面详细描述该步骤的具体操作。在本专利技术的各实施方式本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种用于在关系数据库中组织数据记录的方法,包括 为多个数据记录分别建立索引项,其中每个索引项包括计数器; 对于受到随机访问的数据记录,更新相应索引项中的计数器的数值;以及 基于多个计数器的数值,重组所述多个数据记录。2.根据权利要求I所述的方法,其中重组所述多个数据记录包括将所述多个数据记录安排到相应的物理分区。3.根据权利要求I所述的方法,还包括根据随机访问的预定限制条件、在未设有计数器的索引项中增加计数器。4.根据权利要求I所述的方法,其中基于多个计数器的数值,重组所述多个数据记录还包括定期归档所述多个计数器的数值,以便根据所述多个计数器的历史数值,重组所述多个数据记录。5.根据权利要求I所述的方法,其中基于多个计数器的数值,重组所述多个数据记录还包括响应于所述多个计数器的数值达到预定阈值,归档所述多个计数器的数值,以便根据所述多个计数器的历史数值,重组所述多个数据记录。6.根据权利要求I到5的任意一项所述的方法,其中重组所述多个数据记录基于以下至少ー项 所述多个计数器的至少ー个阈值;以及 所述多个计数器的至少ー个数值区间分配比例。7.根据权利要求I到5的任意一项所述的方法,其中重组所述多个数据记录是利用聚类算法进行的。8.一种用于在...
【专利技术属性】
技术研发人员:魏可伟,傅毓勤,杨新颖,周祥,周婧,张建伟,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。