数据库压测方法、装置及存储介质制造方法及图纸

技术编号:33787175 阅读:14 留言:0更新日期:2022-06-12 14:42
本申请提供一种数据库压测方法、装置及存储介质,涉及计算机技术领域,该方法包括:为M个线程分别设置各自的固定信息;固定信息包括第一随机数种子以及第一随机函数,其中,M为大于1的整数,M个线程用于执行数据库压测;根据M个线程各自的固定信息,生成M个线程中各线程对应的结构化查询语言SQL文本;根据M个线程对应的SQL文本进行数据库压测。这样,每次数据库压测时各线程的第一随机数种子相同,第一随机函数相同,那么,生成的各线程对应的SQL文本相同,从而在数据库压测时实现压测幂等,使得在各数据库压测中的数据库性能曲线趋于一致,有助于定位出现的系统问题。助于定位出现的系统问题。助于定位出现的系统问题。

【技术实现步骤摘要】
数据库压测方法、装置及存储介质


[0001]本申请涉及计算机
,尤其涉及数据库压测方法、装置及存储介质。

技术介绍

[0002]数据库压力测试(简称数据库压测),是模拟生产流量请求生成压测流量请求,并将这些压测流量请求不断施加给数据库,以确定数据库的性能或容量的测试。
[0003]当前,使用相同的数据模型以及相同的数据在不同数据库中进行压测,或者在同一数据库多次进行数据库压测时,测试得到的至少两个数据库性能曲线存在较大差异,从而导致无法定位出现的系统问题。

技术实现思路

[0004]本申请实施例提供一种数据库压测方法、装置及存储介质,涉及计算机
,可以生成幂等数据库压力有助于定位出现的系统问题,从而有助于排查出现系统问题的原因。
[0005]第一方面,本申请提供一种数据库压测方法,该方法包括:为M个线程分别设置各自的固定信息;固定信息包括第一随机数种子以及第一随机函数,其中,M为大于1的整数,M个线程用于执行数据库压测;根据M个线程各自的固定信息,生成M个线程中各线程对应的结构化查询语言SQL文本;根据M个线程对应的SQL文本进行数据库压测。
[0006]本申请实施例提供一种数据库压测方法,该方法中为多个线程分别固定设置各自的随机数种子,固定设置各自的随机函数,基于固定的随机数种子以及固定的随机函数生成各线程对应的SQL文本。这样,每次数据库压测时各线程的第一随机数种子相同,第一随机函数相同,那么,生成的各线程对应的SQL文本相同,从而在数据库压测时实现压测幂等,使得在各数据库压测中的数据库性能曲线趋于一致,有助于定位出现的系统问题。
[0007]可能的实现方式中,上述M个线程在执行数据库压测的过程中,不同线程所处理的数据区间不同;处理包括写入、删除、更新或查询中的至少一种。这样,对于同一条数据记录的不同处理分布于同一线程中,因而电子设备在执行测试程序的过程中不会因此触发线程间的行锁,有助于减少行锁造成的等待时间,提升了数据库压测的效率,另一方面有助于保障不同次测试过程中对同一条数据记录的处理结果相同。
[0008]可能的实现方式中,上述为M个线程分别设置各自的固定信息,包括:为M个线程分别设置各自的随机函数参数,使得M个线程利用各自的第一随机函数生成各自对应SQL文本中第一目标值时,M个线程各自对应的SQL文本的第一目标值的范围不同;第一目标值用于定位数据库中不同的数据记录。这样,可以通过随机函数参数为不同线程分配不同的数据区间。
[0009]可能的实现方式中,上述为M个线程分别设置各自的固定信息,包括:为M个线程分别固定设置对应的数据表;各线程生成的SQL文本中包括各线程对应的数据表的标识。这样,可以通过不同的线程处理不同的数据表实现为不同线程分配不同的数据区间。
[0010]可能的实现方式中,该方法还包括:为N个线程分别固定设置各自的第二随机数种子以及第二随机函数;N为大于1的整数;N个线程用于向数据表中写入数据记录;根据N个线程各自的第二随机数种子以及第二随机函数,生成N个线程中各线程对应的写入文本;根据N个线程对应的写入文本向数据表中写入数据记录。这样,无论多少次通过N个线程向数据表中写入数据记录,每次写入的结果均相同。
[0011]可能的实现方式中,第二随机函数包括基于帕累托法则的随机函数。这样,可以生成分布不均匀测试数据。
[0012]可能的实现方式中,上述根据M个线程各自的固定信息,生成M个线程中各线程对应的结构化查询语言SQL文本,包括:根据M个线程中各线程的固定信息,生成各线程对应的数量阈值个SQL文本。
[0013]可能的实现方式中,该方法还包括:为M个线程中任一个线程设置计数器;计数器用于统计任一个线程中生成的SQL文本的数量;上述根据M个线程中任一个线程的固定信息,生成任一个线程对应的数量阈值个SQL文本,包括:根据任一个线程的固定信息,生成任一个线程对应的SQL文本,在任一个线程中计数器的值达到任一个线程所对应的数量阈值时,任一个线程停止生成SQL文本。这样,有助于使得每次生成的SQL文本数量保持一致,从而有助于实现压测幂等。
[0014]可能的实现方式中,上述为M个线程分别设置各自的固定信息,还包括:基于固定随机数种子以及固定随机函数为M个线程分别固定设置各自的第一随机数种子。这样,可以自动生成各线程的随机数种子。有助于减少人工操作。
[0015]可能的实现方式中,上述基于固定随机数种子以及固定随机函数为M个线程分别固定设置各自的第一随机数种子,包括:根据固定随机数种子以及固定随机函数获取M个随机数;将M个随机数分别设置为M个线程的第一随机数种子。
[0016]第二方面,本申请提供一种电子设备,包括:存储模块和处理模块;存储模块,用于存储固定信息;所述固定信息包括随机数种子以及随机函数;处理模块,用于为M个线程分别固定设置各自的所述固定信息;其中,所述M为大于1的整数,所述M个线程用于执行数据库压测;根据所述M个线程各自的所述固定信息,生成所述M个线程中各线程对应的结构化查询语言SQL文本;根据所述M个线程对应的SQL文本进行数据库压测。
[0017]可选的,M个线程在执行数据库压测的过程中,不同线程所处理的数据区间不同;处理包括写入、删除、更新或查询中的至少一种。
[0018]可选的,处理模块具体用于为M个线程分别设置各自的随机函数参数,使得M个线程利用各自的第一随机函数生成各自对应SQL文本中第一目标值时,M个线程各自对应的SQL文本的第一目标值的范围不同;第一目标值用于定位数据库中不同的数据记录。
[0019]可选的,处理模块具体用于:为M个线程分别固定设置对应的数据表;各线程生成的SQL文本中包括各线程对应的数据表的标识。
[0020]可选的,处理模块还用于为N个线程分别固定设置各自的第二随机数种子以及第二随机函数;N为大于1的整数;N个线程用于向数据表中写入数据记录;根据N个线程各自的第二随机数种子以及第二随机函数,生成N个线程中各线程对应的写入文本;根据N个线程对应的写入文本向数据表中写入数据记录。
[0021]可选的,第二随机函数包括基于帕累托法则的随机函数。
[0022]可选的,处理模块具体用于:根据M个线程中各线程的固定信息,生成各线程对应的数量阈值个SQL文本。
[0023]可选的,处理模块还用于:为M个线程中任一个线程设置计数器;计数器用于统计任一个线程中生成的SQL文本的数量;上述根据M个线程中任一个线程的固定信息,生成任一个线程对应的数量阈值个SQL文本,包括:根据任一个线程的固定信息,生成任一个线程对应的SQL文本,在任一个线程中计数器的值达到任一个线程所对应的数量阈值时,任一个线程停止生成SQL文本。
[0024]可选的,处理模块还用于:基于固定随机数种子以及固定随机函数为M个线程分别固定设置各自的第一随机数种子。
[0025]可选的,处理模块具体用于:根据固定随机数种子以及固定随机函数获本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库压测方法,其特征在于,所述方法包括:为M个线程分别设置各自的固定信息;所述固定信息包括第一随机数种子以及第一随机函数,其中,所述M为大于1的整数,所述M个线程用于执行数据库压测;根据所述M个线程各自的所述固定信息,生成所述M个线程中各线程对应的结构化查询语言SQL文本;根据所述M个线程对应的SQL文本进行数据库压测。2.根据权利要求1所述的数据库压测方法,其特征在于,所述M个线程在执行所述数据库压测的过程中,不同线程所处理的数据区间不同;所述处理包括写入、删除、更新或查询中的至少一种。3.根据权利要求2所述的数据库压测方法,其特征在于,所述为M个线程分别设置各自的固定信息,包括:为所述M个线程分别设置各自的随机函数参数,使得所述M个线程利用各自的所述第一随机函数生成各自对应SQL文本中第一目标值时,所述M个线程各自对应的SQL文本的第一目标值的范围不同;所述第一目标值用于定位所述数据库中不同的数据记录。4.根据权利要求2所述的数据库压测方法,其特征在于,所述为M个线程分别设置各自的固定信息,包括:为所述M个线程分别固定设置对应的数据表;各所述线程生成的SQL文本中包括所述各所述线程对应的所述数据表的标识。5.根据权利要求4所述的数据库压测方法,其特征在于,所述方法还包括:为N个线程分别固定设置各自的第二随机数种子以及第二随机函数;所述N为大于1的整数;所述N个线程用于向所述数据表中写入数据记录;根据所述N个线程各自的所述第二随机数种子以及所述第二随机函数,生成所述N个线程中各线程对应的写入文本;根据所述N个线程对应的所述写入文本向所述数据表中写入数据记录。6.根据权利要求5所述的数据库压测方法,其特征在于,所述第二随机函数包括基于帕累托法则的随机函数。7.根据权利要求1

6任一项所述的数据库压测方法,其特征在于,所述根据所述M个线程各自的所述固定信息,生成所述M个线程中各线程对应的结构化查询语言SQL文本,包括:根据所述M个线程中各线程的所述固定信息,生成所述各线程对应的数量阈值个SQL文本。8.根据权利要求7所述...

【专利技术属性】
技术研发人员:陈荣耀
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1