【技术实现步骤摘要】
数据库事务的控制方法、装置及相关设备
[0001]本申请涉及数据库
,尤其涉及一种数据库事务的控制方法、装置及相关设备。
技术介绍
[0002]投机事务是指支持投机读或者投机忽略的事务,投机读是指,在基于多版本并发控制(Multi
‑
Version Concurrency Control,MVCC)或者基于多版本乐观并发控制(Multi
‑
Version optimistic Concurrency Control,MVOCC)的数据库系统中,支持读取另一个处于准备状态的事务正在更新的行版本,而不需要等待锁或互斥标记释放。投机忽略是指,在基于MVCC或者MVOCC的数据库系统中,支持忽略另一个处于准备状态的事务正在删除的行版本,而不需要等待锁或者互斥标记释放。因此,投机事务能够提升多事务的并行度,从而提升数据库系统的性能。
[0003]虽然,现有的数据库系统支持事务对多版本行数据进行投机读和投机忽略,但是只能在系统层支持投机事务,用户无法对投机事务进行控制,影响用户的使用感。
技术实现思路
[0004]本申请实施例提供了一种数据库事务的控制方法、装置及相关设备,能够通过SQL语句实现用户设备对投机功能的控制,提高用户的使用体验。
[0005]第一方面,本申请实施例提供了一种数据库事务的控制方法,该方法包括:接收来自用户设备的结构化查询语言SQL语句;根据SQL语句设置第一数据库事务的第一投机功能,第一投机功能用于表明在第二数据库事务的日志提交前 ...
【技术保护点】
【技术特征摘要】
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语句;处理单元...
【专利技术属性】
技术研发人员:谢晓芹,马文龙,张宗全,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。