事务处理方法、装置、电子设备、存储介质及程序产品制造方法及图纸

技术编号:37783593 阅读:9 留言:0更新日期:2023-06-09 09:14
本申请实施例提供了一种事务处理方法、装置、电子设备、存储介质及程序产品,涉及数据库技术领域。该方法包括:确定数据库隔离级别,并确定数据库事务开启方式;若数据库隔离级别与数据库事务开启方式符合第一预设条件,则确定已执行的至少一个数据操纵语言的操作类型;基于所确定的操作类型,以及已执行的数据操纵语言生成待提交的目标数据库事务,并提交目标数据库事务。本申请提供的事务处理方法中在满足预设的条件时,对已执行的数据操纵语言的类型进行判断,根据不同的类型选择对已执行的数据操纵语言进行提交的方式,使得满足预设条件的数据库事务能够及时提交并释放资源,避免长时间占用导致数据库资源浪费。间占用导致数据库资源浪费。间占用导致数据库资源浪费。

【技术实现步骤摘要】
事务处理方法、装置、电子设备、存储介质及程序产品


[0001]本申请涉及数据库
,具体而言,本申请涉及一种事务处理方法、装置、电子设备、存储介质及计算机程序产品。

技术介绍

[0002]随着数据库技术的发展,数据库事务的提交方式和副本间的数据同步对于数据库的效率来说越来越重要。数据库的事务是一种机制,一个操作序列,包含了一组对数据库的操作命令。数据库的一些操作可以自动提交,即每条语句作为一个事务执行,无需用户手动提交,语句之间都是独立的,可以及时保存用户的数据操作。
[0003]现在解决数据库事务长时间不提交的问题的方法是在空闲事务超时后中止事务,但是事务的超时时间不容易评估,事务在一个副本上长时间占用资源不释放,给数据库系统的使用和稳定性造成影响,会导致数据库资源的浪费。

技术实现思路

[0004]本申请实施例旨在解决数据库事务长时间占用资源不自动提交的问题。所述技术方案如下:
[0005]第一方面,本申请提供了一种事务处理方法,包括:
[0006]确定数据库隔离级别,并确定数据库事务开启方式;
[0007]若所述数据库隔离级别与所述数据库事务开启方式符合第一预设条件,则确定已执行的至少一个数据操纵语言的操作类型;
[0008]基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,并提交所述目标数据库事务。
[0009]在第一方面的可选实施例中,所述第一预设条件,包括:
[0010]所述数据库隔离级别为读已提交,且所述数据库事务开启方式为隐式开启和非自动提交。
[0011]在第一方面的可选实施例中,所述基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,包括:
[0012]若所述已执行的至少一个数据操纵语言的操作类型均为只读查询操作类型,将所述已执行的数据操纵语言作为待提交的目标数据库事务。
[0013]在第一方面的可选实施例中,所述基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,包括:
[0014]若所述已执行的至少一个数据操纵语言包括写操作类型,则继续执行待执行的数据操纵语言,直至符合第二预设条件。
[0015]在第一方面的可选实施例中,所述第二预设条件包括:
[0016]当前未执行数据操纵语言,且当前时间与上一次数据操纵语言的执行时间之间的间隔时间大于或等于预设时长;
[0017]所述方法还包括:
[0018]关闭会话通道,将此数据库事务回滚,并释放数据库资源;其中,所述回滚是指恢复到执行事务之前的状态。
[0019]第二方面,提供了一种事务处理装置,该装置包括:
[0020]第一确定模块,用于确定数据库隔离级别,并确定数据库事务开启方式;
[0021]第二确定模块,用于若所述数据库隔离级别与所述数据库事务开启方式符合第一预设条件,则确定已执行的至少一个数据操纵语言的操作类型;
[0022]提交模块,用于基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,并提交所述目标数据库事务。
[0023]第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现本申请第一方面中任一项所述方法的步骤。
[0024]第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本申请第一方面中任一项所示的事务处理方法。
[0025]第七方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现本申请第一方面中任一项所示的事务处理方法。
[0026]本申请实施例提供的技术方案带来的有益效果是:
[0027]本申请提供的事务处理方法,通过确定数据库隔离级别,并确定数据库事务开启方式,当数据库隔离级别和数据库事务开启方式符合第一预设条件,则确定已执行的至少一个数据操纵语言的操作类型;基于所确定的操作类型,以及已执行的数据操纵语言生成待提交的目标数据库事务,并提交目标数据库事务。本申请提供的事务处理方法中在满足预设的条件时,对已执行的数据操纵语言的类型进行判断,根据不同的类型选择对已执行的数据操纵语言进行提交的方式,使得满足预设条件的数据库事务能够及时提交并释放资源,避免长时间占用导致数据库资源浪费。
附图说明
[0028]为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0029]图1为本申请实施例提供的一种事务处理方法的应用场景示意图;
[0030]图2为本申请实施例提供的一种事务处理方法的流程示意图;
[0031]图3为本申请实施例提供的一种事务处理方法的一个示例的流程示意图;
[0032]图4为本申请实施例提供的一种事务处理装置的结构示意图;
[0033]图5为本申请实施例提供的一种事务处理方法适用的电子设备的结构示意图。
具体实施方式
[0034]下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
[0035]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一
个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作和组件,但不排除实现为本
所支持其他特征、信息、数据、步骤、操作、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
[0036]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0037]首先对本申请涉及的几个名词进行介绍和解释:
[0038]数据操纵语言(Data Manipulation Language,DML):对数据库中的数据进行一些简单操作,如insert(插入),delete(删除),update(更新),select(选择)等。
[0039]数据库事务的隔离级别有4种,由低到高分别为Read uncommitted(读未提交)、Read committed(读已提交)、Repeatable read(重复读)、Serializable(序列化)。
[0040]读已提交(Read Com本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种事务处理方法,其特征在于,包括:确定数据库隔离级别,并确定数据库事务开启方式;若所述数据库隔离级别与所述数据库事务开启方式符合第一预设条件,则确定已执行的至少一个数据操纵语言的操作类型;基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,并提交所述目标数据库事务。2.根据权利要求1所述的事务处理方法,其特征在于,所述第一预设条件,包括:所述数据库隔离级别为读已提交,且所述数据库事务开启方式为隐式开启和非自动提交。3.根据权利要求1所述的事务处理方法,其特征在于,所述基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,包括:若所述已执行的至少一个数据操纵语言的操作类型均为只读查询操作类型,将所述已执行的数据操纵语言作为待提交的目标数据库事务。4.根据权利要求1所述的事务处理方法,其特征在于,所述基于所确定的操作类型,以及所述已执行的数据操纵语言生成待提交的目标数据库事务,包括:若所述已执行的至少一个数据操纵语言包括写操作类型,则继续执行待执行的数据操纵语言,直至符合第二预设条件。5.根据权利要求4所述的事务处理方法,其特征在于,所述...

【专利技术属性】
技术研发人员:蔡哲军曹升东张智佳
申请(专利权)人:湖南亚信安慧科技有限公司
类型:发明
国别省市:

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

1