数据库事务的控制方法、装置及相关设备制造方法及图纸

技术编号:37037686 阅读:12 留言:0更新日期:2023-03-29 19:17
本申请实施例提供一种数据库事务的控制方法、装置及相关设备,应用于数据库技术领域。该方法可以包括:接收来自用户设备的结构化查询语言SQL语句;根据所述SQL语句设置第一数据库事务的第一投机功能,所述第一投机功能用于表明在第二数据库事务的日志提交前,关于所述第二数据库事务的操作记录对所述第一数据库事务可见;根据所述第一投机功能对所述第一数据库事务进行操作。采用本申请实施例能够通过SQL语句实现用户设备对投机功能的控制,提高用户的使用体验。用户的使用体验。用户的使用体验。

【技术实现步骤摘要】
数据库事务的控制方法、装置及相关设备


[0001]本申请涉及数据库
,尤其涉及一种数据库事务的控制方法、装置及相关设备。

技术介绍

[0002]投机事务是指支持投机读或者投机忽略的事务,投机读是指,在基于多版本并发控制(Multi

Version Concurrency Control,MVCC)或者基于多版本乐观并发控制(Multi

Version optimistic Concurrency Control,MVOCC)的数据库系统中,支持读取另一个处于准备状态的事务正在更新的行版本,而不需要等待锁或互斥标记释放。投机忽略是指,在基于MVCC或者MVOCC的数据库系统中,支持忽略另一个处于准备状态的事务正在删除的行版本,而不需要等待锁或者互斥标记释放。因此,投机事务能够提升多事务的并行度,从而提升数据库系统的性能。
[0003]虽然,现有的数据库系统支持事务对多版本行数据进行投机读和投机忽略,但是只能在系统层支持投机事务,用户无法对投机事务进行控制,影响用户的使用感。

技术实现思路

[0004]本申请实施例提供了一种数据库事务的控制方法、装置及相关设备,能够通过SQL语句实现用户设备对投机功能的控制,提高用户的使用体验。
[0005]第一方面,本申请实施例提供了一种数据库事务的控制方法,该方法包括:接收来自用户设备的结构化查询语言SQL语句;根据SQL语句设置第一数据库事务的第一投机功能,第一投机功能用于表明在第二数据库事务的日志提交前,关于第二数据库事务的操作记录对第一数据库事务可见;根据第一投机功能对第一数据库事务进行操作。
[0006]上述方法可以应用于服务器,由服务器或者服务器内部的部件(例如芯片、软件模块或者集成电路)来执行。
[0007]本申请实施例中,投机功能(比如说投机读、投机忽略和投机写等等)可以提升多事务的并行度,从而提升数据库系统的性能。而服务器可以根据来自用户设备的SQL语句设置数据库事务的投机功能,也即用户可以根据自身的需求设置数据库事务的投机功能,荣用户能够激活数据库系统的投机机制带来的收益,提高用户的使用体验。
[0008]在第一方面的一种可能的实施方式中,根据SQL语句设置第一数据库事务的第一投机功能,包括:解析SQL语句得到投机参数;根据投机参数调用存储引擎的接口,来设置存储引擎中的控制变量,控制变量用于表明第一数据库事务的第一投机功能。
[0009]可以看出,服务器可以根据SQL语句来调用存储引擎,并设置数据库事务的投机功能的控制变量,以此来实现对投机功能的控制。
[0010]在第一方面的一种可能的实施方式中,投机参数包括投机开关的参数和投机级别的参数;解析SQL语句确定投机参数,包括:解析SQL语句得到投机开关关键字和投机级别关键字;根据投机开关关键字确定投机开关的参数;根据投机级别关键字确定投机级别的参
数。
[0011]可以看出,服务器可以解析SQL语句得到用于控制投机功能的投机开关的参数和投机级别的参数,由此服务器可以根据用户设备的需求打开或者关闭投机功能,以及对数据库事务进行分级控制。
[0012]在第一方面的一种可能的实施方式中,根据投机参数调用存储引擎的接口,来设置存储引擎中的控制变量,包括:根据投机级别的参数调用存储引擎的接口,来获取存储引擎中的目标对象;根据投机开关的参数设置目标对象的控制变量。
[0013]可以看出,服务器可以根据投机级别的参数来调用对应的存储引擎的接口,从而来获取该投机级别所对应的目标对象,通过投机开关的参数设置目标对应的控制变量来实现打开该投机级别的投机功能,还是关闭该投机级别的投机功能。这样,可以实现对数据事务的投机功能的分级控制。
[0014]在第一方面的一种可能的实施方式中,投机级别的参数包含以下中的至少一项:系统级的参数、会话级的参数、事务级的参数和语句级的参数。
[0015]可以看出,服务器可以根据用户设备的需求对数据库事务实现系统级、会话级、事务级或者语句级的投机控制。
[0016]在第一方面的一种可能的实施方式中,述根据第一投机功能对第一数据库事务进行操作,包括:确定针对第一目标数据库事务已设置的第二投机功能;若第一投机功能的优先级高于第二投机功能的优先级,则根据第一投机功能对第一数据库事务进行操作;其中,优先级由低到高包括:系统级、会话级、事务级、语句级。
[0017]可以看出,投机级别中存在优先级,高优先级的设置可以覆盖低优先级的设置。
[0018]在第一方面的一种可能的实施方式中,根据SQL语句设置第一数据库事务的投机功能,包括:根据SQL语句查询缓存;若缓存中不存在SQL语句,则根据SQL语句设置第一数据库事务的投机功能。
[0019]可以看出,若缓存中存在用于设置投机功能的SQL语句,则不需要再根据SQL语句来设置投机功能;若缓存中不存在设置投机功能的SQL语句,则需要根据SQL语句来设置投机功能。这样,可以减少因设置投机功能而带来的开销。
[0020]在第一方面的一种可能的实施方式中,接收来自用户设备的结构化查询语言SQL语句之前,还包括:通过加载配置文件或者命令行参数设置第一数据库事务的系统级的投机功能。
[0021]在第一方面的一种可能的实施方式中,通过加载配置文件或者命令行参数设置第一数据库事务的系统级的投机功能,包括:加载配置文件或者命令行参数得到开关参数和系统级参数;根据开关参数和系统级参数设置数据库系统的系统变量,系统变量用于表明第一数据库事务的系统级的投机功能。
[0022]在第一方面的一种可能的实施方式中,根据开关参数和系统级参数设置数据库系统的系统变量,包括:将开关参数和系统级参数存储到数据库系统的全局变量中;在数据库系统初始化过程中,根据全局变量中存储的系统级参数得到开关参数;根据开关参数设置系统变量。
[0023]可以看出,服务器除了接收用户设备的SQL语句来设置系统级的投机功能之外,还可以通过加载配置文件或者命令行参数来设置系统级的投机功能,为用户设备提供多种设
置方式。
[0024]在第一方面的一种可能的实施方式中,根据SQL语句设置第一数据库事务的第一投机功能,包括:解析SQL语句得到投机关键词;调用存储引擎的接口;根据投机关键词设置接口的投机参数,投机参数用于表明第一数据库事务的语句级的投机功能。
[0025]可以看出,服务器还可以通过接口参数来设置语句级的投机功能,为用户设备提供多种设置方式。
[0026]在第一方面的一种可能的实施方式中,述根据设置的第一投机功能对第一数据库事务进行操作,包括:根据设置的第一投机功能在第二数据库事务的日志提交之前,根据第二数据库事务的操作记录对第一数据库事务进行操作。
[0027]可以看出,投机功能有利于多事务的并行,从而提升数据库系统的性能。
[0028]第二方面,本申请实施例提供了一种数据库事务的控制方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库事务的控制方法,其特征在于,所述方法包括:接收来自用户设备的结构化查询语言SQL语句;根据所述SQL语句设置第一数据库事务的第一投机功能,所述第一投机功能用于表明在第二数据库事务的日志提交前,关于所述第二数据库事务的操作记录对所述第一数据库事务可见;根据所述第一投机功能对所述第一数据库事务进行操作。2.根据权利要求1所述的方法,其特征在于,所述根据所述SQL语句设置第一数据库事务的第一投机功能,包括:解析所述SQL语句得到投机参数;根据所述投机参数调用存储引擎的接口,来设置所述存储引擎中的控制变量,所述控制变量用于表明所述第一数据库事务的所述第一投机功能。3.根据权利要求2所述的方法,其特征在于,所述投机参数包括投机开关的参数和投机级别的参数;所述解析所述SQL语句确定投机参数,包括:解析所述SQL语句得到所述投机开关关键字和所述投机级别关键字;根据所述投机开关关键字确定所述投机开关的参数;根据所述投机级别关键字确定所述投机级别的参数。4.根据权利要求3所述的方法,其特征在于,所述根据所述投机参数调用存储引擎的接口,来设置所述存储引擎中的控制变量,包括:根据所述投机级别的参数调用所述存储引擎的接口,来获取所述存储引擎中的目标对象;根据所述投机开关的参数设置所述目标对象的控制变量。5.根据权利要求3或4所述的方法,其特征在于,所述投机级别的参数包含以下中的至少一项:系统级的参数、会话级的参数、事务级的参数和语句级的参数。6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述第一投机功能对所述第一数据库事务进行操作,包括:确定针对所述第一目标数据库事务已设置的第二投机功能;若所述第一投机功能的优先级高于所述第二投机功能的优先级,则根据所述第一投机功能对所述第一数据库事务进行操作;其中,所述优先级由低到高包括:系统级、会话级、事务级、语句级。7.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述SQL语句设置第一数据库事务的投机功能,包括:根据所述SQL语句查询缓存;若所述缓存中不存在所述SQL语句,则根据所述SQL语句设置第一数据库事务的投机功能。8.根据权利要求1至7任一项所述的方法,其特征在于,所述接收来自用户设备的结构化查询语言SQL语句之前,还包括:通过加载配置文件或者命令行参数设置第一数据库事务的系统级的投机功能。9.根据权利要求8所述的方法,其特征在于,所述通过加载配置文件或者命令行参数设置第一数据库事务的系统级的投机功能,包括:
加载所述配置文件或者所述命令行参数得到开关参数和系统级参数;根据所述开关参数和所述系统级参数设置数据库系统的系统变量,所述系统变量用于表明所述第一数据库事务的系统级的投机功能。10.根据权利要求9所述的方法,其特征在于,所述根据所述开关参数和所述系统级参数设置数据库系统的系统变量,包括:将所述开关参数和所述系统级参数存储到所述数据库系统的全局变量中;在所述数据库系统初始化过程中,根据所述全局变量中存储的所述系统级参数得到所述开关参数;根据所述开关参数设置所述系统变量。11.根据权利要求1至10任一项所述的方法,其特征在于,所述根据所述SQL语句设置第一数据库事务的第一投机功能,包括:解析所述SQL语句得到投机关键词;调用存储引擎的接口;根据所述投机关键词设置所述接口的投机参数,所述投机参数用于表明所述第一数据库事务的语句级的投机功能。12.根据权利要求1至11任一项所述的方法,其特征在于,所述根据设置的所述第一投机功能对所述第一数据库事务进行操作,包括:根据设置的所述第一投机功能在所述第二数据库事务的日志提交之前,根据所述第二数据库事务的操作记录对所述第一数据库事务进行操作。13.一种数据库事务的控制方法,其特征在于,所述方法包括;生成结构化查询语言SQL语句,所述SQL语句用于设置第一数据库事务的第一投机功能,所述第一投机功能用于表明在第二数据库事务的日志提交前,关于所述第二数据库事务的操作记录对所述第一数据库事务可见;向服务器发送所述SQL语句;接收来自所述服务器的设置结果。14.根据权利要求13所述的方法,其特征在于,所述SQL语句包含投机开关的参数和投机级别的参数。15.根据权利要求14所述的方法,其特征在于,所述投机开关的参数用于打开所述第一投机功能或者关闭所述第一投机功能。16.根据权利要求14或15所述的方法,其特征在于,所述投机级别的参数包含以下中的至少一项:系统级的参数、会话级的参数、事务级的参数和语句级的参数。17.一种数据库事务的控制装置,其特征在于,所述装置包括:通信单元,用于接收来自用户设备的结构化查询语言SQL语句;处理单元...

【专利技术属性】
技术研发人员:谢晓芹马文龙张宗全
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

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

1