待执行语句的执行方法和装置、处理器及电子设备制造方法及图纸

技术编号:38884529 阅读:8 留言:0更新日期:2023-09-22 14:13
本申请公开了一种待执行语句的执行方法和装置、处理器及电子设备。涉及数据库技术领域,该方法包括:响应目标对象对数据库的操作请求,确定出数据库的当前运行内存数值;对当前运行内存数值和第一预设阈值进行比较,得到比较结果;从数据库的所有线程中确定出正在运行的线程的数量与所有线程的数量之间的比值;根据比较结果和比值并发执行操作请求所指示的待执行语句;通过本申请,解决了相关技术中,如何提高多个请求所对应的待执行语句的执行效率的问题。效率的问题。效率的问题。

【技术实现步骤摘要】
待执行语句的执行方法和装置、处理器及电子设备


[0001]本申请涉及数据库
,具体而言,涉及一种待执行语句的执行方法和装置、处理器及电子设备。

技术介绍

[0002]目前线上为了提高高并发系统的请求量和响应速度,往往会搭建系统集群,虽然日益成熟的集群技术可以支持系统集群处理多并发请求,但是生产应用系统还是会时常出现不可用的情况,例如,大量用户在生产环境中并发访问系统,会导致数据库运行状态不稳定,出现性能不足,进而发生整个应用系统响应慢或者应用系统不可用的情况。
[0003]针对相关技术中,如何提高多个请求所对应的待执行语句的执行效率的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本申请的主要目的在于提供一种待执行语句的执行方法和装置、处理器及电子设备,以解决相关技术中,如何提高多个请求所对应的待执行语句的执行效率的问题。
[0005]为了实现上述目的,根据本申请的一个方面,提供了一种待执行语句的执行方法。该方法包括:响应目标对象对数据库的操作请求,确定出所述数据库的当前运行内存数值;对所述当前运行内存数值和第一预设阈值进行比较,得到比较结果;从所述数据库的所有线程中确定出正在运行的线程的数量与所述所有线程的数量之间的比值;根据所述比较结果和所述比值并发执行所述操作请求所指示的待执行语句。
[0006]可选的,根据所述比较结果和所述比值并发执行所述待执行语句,包括:在确定所述比较结果用于指示所述当前运行内存数值小于或等于所述第一预设阈值的情况下,如果确定所述比值小于或等于第二预设阈值,则确定出所述待执行语句对应存在的语句分区;在确定存在多个语句分区的情况下,对所述多个语句分区内的所有待执行语句进行并发执行。
[0007]可选的,根据所述比较结果和所述比值并发执行所述待执行语句,包括:在确定所述比较结果用于指示所述当前运行内存数值大于所述第一预设阈值的情况下,如果确定所述比值小于第三预设阈值,则确定出所述待执行语句对应存在的语句分区;获取所述语句分区的分区优先级;在确定存在多个语句分区的情况下,根据所述分区优先级对所述多个语句分区进行排序,得到排序结果;从所述排序结果中获取具有最高分区优先级的至少两个语句分区,并对所述至少两个语句分区中的所有待执行语句进行并发执行。
[0008]可选的,对所述至少两个语句分区中的所有待执行语句进行并发执行,包括:从预设互斥执行语句表获取N组互斥执行语句,所述N组互斥执行语句中的每一组互斥执行语句至少包含两条具有互斥锁关系的互斥执行语句,其中,所述N为正整数;针对所述至少两个语句分区中的所有待执行语句的每一条待执行语句,如果确定所述每一条待执行语句与所述N组互斥执行语句中的每一组互斥执行语句的每一条互斥执行语句均不一致,则对所述
至少两个语句分区中的所有待执行语句进行并发执行。
[0009]可选的,对所述至少两个语句分区中的所有待执行语句进行并发执行,包括:从预设互斥执行语句表获取N组互斥执行语句,所述N组互斥执行语句中的每一组互斥执行语句至少包含两条具有互斥锁关系的互斥执行语句,其中,所述N为正整数;针对所述至少两个语句分区中的所有待执行语句的每一条待执行语句,如果确定所述每一条待执行语句与所述N组互斥执行语句中的任一组互斥执行语句的任一条互斥执行语句一致,则确定出所述任一组的其余互斥执行语句;在确定所述其余互斥执行语句与当前时刻运行的执行语句不一致的情况下,对所述至少两个语句分区中的所有待执行语句进行并发执行。
[0010]可选的,通过以下方式确定所述预设互斥执行语句表:从所述数据库的历史运行日志中获取到已经并发执行过的已执行语句;如果确定所述已执行语句的执行时间段超过第一预设时间段,则基于所述已执行语句,与所述已执行语句之间存在互斥锁关系的互斥执行语句生成所述预设互斥执行语句表。
[0011]可选的,通过以下方式确定所述待执行语句对应存在的语句分区:获取用于分区存储所述待执行语句的预设消息队列,其中,所述预设消息队列设置有多个队列分区,所述多个队列分区至少包括第一队列分区;将预设互斥执行语句表中的所有互斥执行语句确定为第一目标待执行语句;将所述第一目标待执行语句存储至所述第一队列分区,并将所述第一队列分区确定为所述第一目标待执行语句对应存在的语句分区;其中,所述预设互斥语句表是根据所述数据库中的已执行语句,以及与所述已执行语句之间存在互斥锁关系的互斥执行语句生成的。
[0012]可选的,在根据所述比较结果和所述比值并发执行所述待执行语句之前,通过以下方式确定所述待执行语句对应存在的语句分区:获取用于分区存储所述待执行语句的预设消息队列,其中,所述预设消息队列设置的多个队列分区;获取所述待执行语句在测试环境下的并发执行次数以及所述待执行语句在测试环境下的并发执行时间;根据所述并发执行次数确定出所述待执行语句的第一权重值,根据所述并发执行时间确定出所述待执行语句的第二权重值;根据所述第一权重值和所述第二权重值确定所述待执行语句对应存在的语句分区。
[0013]可选的,所述多个队列分区至少包括以下之一:第二队列分区,第三队列分区,第四队列分区,第五队列分区;根据所述第一权重值和所述第二权重值确定所述待执行语句对应存在的语句分区,至少包括以下之一:将具有小于第四预设阈值的第一权重值,小于第五预设阈值的第二权重值的待执行语句确定为第二目标待执行语句,将所述第二目标待执行语句存储至所述第二队列分区,并将所述第二队列分区确定为所述第二目标待执行语句对应存在的语句分区;将具有小于或等于第四预设阈值的第一权重值,大于或等于第五预设阈值的第二权重值的待执行语句确定为第三目标待执行语句,将所述第三目标待执行语句存储至所述第三队列分区,并将所述第三队列分区确定为所述第三目标待执行语句对应存在的语句分区;将具有大于第四预设阈值的第一权重值,大于第五预设阈值的第二权重值的待执行语句确定为第四目标待执行语句,将所述第四目标待执行语句存储至所述第四队列分区,并将所述第四队列分区确定为所述第四目标待执行语句对应存在的语句分区;将具有大于第四预设阈值的第一权重值,小于第五预设阈值的第二权重值的待执行语句确定为第五目标待执行语句,将所述第五目标待执行语句存储至所述第五队列分区,并将所
述第五队列分区确定为所述第五目标待执行语句对应存在的语句分区。
[0014]可选的,在对所述至少两个语句分区中的所有待执行语句进行并发执行之后,所述方法还包括:从所述排序结果中获取其他语句分区,其中,所述其他语句分区表示所述多个语句分区中除了所述至少两个语句分区之外的语句分区;对所述其他语句分区中的所有待执行语句进行并发执行。
[0015]为了实现上述目的,根据本申请的另一方面,提供了一种待执行语句的执行装置。该装置包括:数值确定模块,用于响应目标对象对数据库的操作请求,确定出所述数据库的当前运行内存数值;结果得到模块,用于对所述当前运行内存数值和第一预设阈值进行比较,得到比较结果;比值确定模块,用于从所述数据库的所有线程中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种待执行语句的执行方法,其特征在于,包括:响应目标对象对数据库的操作请求,确定出所述数据库的当前运行内存数值;对所述当前运行内存数值和第一预设阈值进行比较,得到比较结果;从所述数据库的所有线程中确定出正在运行的线程的数量与所述所有线程的数量之间的比值;根据所述比较结果和所述比值并发执行所述操作请求所指示的待执行语句。2.根据权利要求1所述的方法,其特征在于,根据所述比较结果和所述比值并发执行所述待执行语句,包括:在确定所述比较结果用于指示所述当前运行内存数值小于或等于所述第一预设阈值的情况下,如果确定所述比值小于或等于第二预设阈值,则确定出所述待执行语句对应存在的语句分区;在确定存在多个语句分区的情况下,对所述多个语句分区内的所有待执行语句进行并发执行。3.根据权利要求1所述的方法,其特征在于,根据所述比较结果和所述比值并发执行所述待执行语句,包括:在确定所述比较结果用于指示所述当前运行内存数值大于所述第一预设阈值的情况下,如果确定所述比值小于第三预设阈值,则确定出所述待执行语句对应存在的语句分区;获取所述语句分区的分区优先级;在确定存在多个语句分区的情况下,根据所述分区优先级对所述多个语句分区进行排序,得到排序结果;从所述排序结果中获取具有最高分区优先级的至少两个语句分区,并对所述至少两个语句分区中的所有待执行语句进行并发执行。4.根据权利要求3所述的方法,其特征在于,对所述至少两个语句分区中的所有待执行语句进行并发执行,包括:从预设互斥执行语句表获取N组互斥执行语句,所述N组互斥执行语句中的每一组互斥执行语句至少包含两条具有互斥锁关系的互斥执行语句,其中,所述N为正整数;针对所述至少两个语句分区中的所有待执行语句的每一条待执行语句,如果确定所述每一条待执行语句与所述N组互斥执行语句中的每一组互斥执行语句的每一条互斥执行语句均不一致,则对所述至少两个语句分区中的所有待执行语句进行并发执行。5.根据权利要求3所述的方法,其特征在于,对所述至少两个语句分区中的所有待执行语句进行并发执行,包括:从预设互斥执行语句表获取N组互斥执行语句,所述N组互斥执行语句中的每一组互斥执行语句至少包含两条具有互斥锁关系的互斥执行语句,其中,所述N为正整数;针对所述至少两个语句分区中的所有待执行语句的每一条待执行语句,如果确定所述每一条待执行语句与所述N组互斥执行语句中的任一组互斥执行语句的任一条互斥执行语句一致,则确定出所述任一组的其余互斥执行语句;在确定所述其余互斥执行语句与当前时刻运行的执行语句不一致的情况下,对所述至少两个语句分区中的所有待执行语句进行并发执行。6.根据权利要求4,5中任意一项所述的方法,其特征在于,通过以下方式确定所述预设
互斥执行语句表:从所述数据库的历史运行日志中获取到已经并发执行过的已执行语句;如果确定所述已执行语句的执行时间段超过第一预设时间段,则基于所述已执行语句,与所述已执行语句之间存在互斥锁关系的互斥执行语句生成所述预设互斥执行语句表。7.根据权利要求6所述的方法,其特征在于,通过以下方式确定所述待执行语句对应存在的语句分区:获取用于分区存储所述待执行语句的预设消息队列,其中,所述预设消息队列设置有多个队列分区,所述多个队列分区至少包括第一队列分区;将预设互斥执行语句表中的所有互斥执行语句确定为第一目标待执行语句;将所述第一目标待执行语句存储至所述第一队列分区,并将...

【专利技术属性】
技术研发人员:陈栋高建华周莉杨光宇
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1