一种数据库子事务的性能优化方法技术

技术编号:37842314 阅读:32 留言:0更新日期:2023-06-14 09:46
本发明专利技术提供了一种数据库子事务的性能优化方法,属于数据库技术领域,能够有效提升数据库性能。本发明专利技术中将磁盘文件中的父子关系交换到当前进程独占的本地内存,子事务在处理时,优先读取本地内存中缓存的事务信息,从共享内存中读取父子关系到本地的时候,以已经提交的最大xmin作为标记,保证最大xmin之前的事务已经提交;最大xmin之后的父子关系已经写入共享内存。本发明专利技术方法通过本地内存优化了数据库中子事务的处理性能,并基于xmin确保子事务优化时主库备库的数据一致性,从而实现了数据库的性能优化。基于本发明专利技术方案,在多并发场景下,子事务的处理也能够高效执行。子事务的处理也能够高效执行。子事务的处理也能够高效执行。

【技术实现步骤摘要】
一种数据库子事务的性能优化方法


[0001]本专利技术属于数据库
,具体涉及一种数据库子事务的性能优化方法。

技术介绍

[0002]目前,随着去IOE的推进,将Oracle数据库替换成国产数据库的需求越来越多,而Oracle数据库在子事务的处理性能上趋于稳定,而国产数据库在子事务的处理性能上都偏弱。国产数据库中大部分产品(70%以上),都是基于开源数据库PostgreSQL或MySQL进行改造开发,其中基于PostgreSQL的占比较重(6成以上)。
[0003]在PostgreSQL中,数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。数据库事务由事务开始与事务结束之间执行的全部数据库操作组成。子事务是允许回滚部分已经在事务中完成或失败的操作,且不影响该事务后续的操作,保证整个事务被提交或回滚。
[0004]目前,在数据库中,当数据库的子事务数量超过宏定义变量NUM_SUBTRANS_BUFFERS子事务缓存(默认32pag本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据库子事务的性能优化方法,其特征在于,包括如下步骤:步骤1,查询子事务的父事务号;步骤2,判断父子关系是否存在于本地内存中,当存在时跳转至步骤10,当不存在时执行步骤3;步骤3,查找本进程所有快照中最大的xmin;步骤4,判断共享内存中是否存在父子关系,当不存在时执行步骤6,当存在时执行步骤9;步骤5,获取SubTransCtllock互斥锁;步骤6,从磁盘中读取文件到共享内存;步骤7,释放SubTransCtllock互斥锁;步骤8,复制共享内存和磁盘文件中的事务父子关系到本地内存;步骤9,标记最大的xmin之前的事务可见;步骤10,从本地内存中取出父事务号;步骤1...

【专利技术属性】
技术研发人员:梁博洪建辉余秀明马珊珊顾颀许兴旺张小波
申请(专利权)人:湖南亚信安慧科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1