CN116991691B - 数据库测试方法、装置、电子设备及可读存储介质 - Google Patents
数据库测试方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116991691B CN116991691B CN202311244498.1A CN202311244498A CN116991691B CN 116991691 B CN116991691 B CN 116991691B CN 202311244498 A CN202311244498 A CN 202311244498A CN 116991691 B CN116991691 B CN 116991691B
- Authority
- CN
- China
- Prior art keywords
- sql
- database
- sample
- execution
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 116
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000001360 synchronised effect Effects 0.000 claims abstract description 16
- 239000000523 sample Substances 0.000 claims description 173
- 238000011056 performance test Methods 0.000 claims description 18
- 238000012163 sequencing technique Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 description 26
- 230000000694 effects Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据库测试方法、装置、电子设备及可读存储介质,涉及数据库技术领域,其中方法包括:从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本,所述第一业务***为部署有第一数据库的业务***;在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果。本申请实施例能够大大减少数据库测试过程中的人工操作,从而降低测试结果的差异性,并提高数据库测试的效率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库测试方法、装置、电子设备及可读存储介质。
背景技术
业务***的数据库在一定情况下需要更换。在对已投入使用的业务***的数据库进行更换之前,需要对新的数据库进行性能测试和兼容性测试,以判断新的数据库的性能以及兼容性是否达到要求。目前,数据库测试的过程大多为人工操作,人工操作将导致测试结果存在较大差异,且效率较低。
发明内容
本申请实施例提供了一种数据库测试方法、装置、电子设备及可读存储介质,以解决现有技术中数据库测试的过程大多为人工操作,导致测试结果存在较大差异,且效率较低的技术问题。
为了解决上述技术问题,本申请是这样实现的;
第一方面,本申请实施例提供了一种数据库测试方法,所述方法包括:
从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本,所述第一业务***为部署有第一数据库的业务***;
在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;
基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果。
第二方面,本申请实施例提供了一种数据库测试装置,包括:
获取模块,用于从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本,所述第一业务***为部署有第一数据库的业务***;
回放模块,用于在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;
确定模块,用于基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果。
第三方面,本申请实施例提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的数据库测试方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的数据库测试方法的步骤。
本申请实施例中,第一业务***为部署有第一数据库的业务***,从第一业务***在第一时段内生成的SQL日志中,可获取至少一个SQL样本;通过在第二数据库中回放至少一个SQL样本,以得到至少一个SQL样本中的每个SQL样本的回放结果,每个SQL样本的回放结果能够反映出第二数据库的性能或者兼容性;通过基于至少一个SQL样本中的每个SQL样本的回放结果,能够确定第二数据库的测试结果。可见,本申请实施例能够大大减少数据库测试过程中的人工操作,从而降低测试结果的差异性,并提高数据库测试的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据库测试方法的流程图之一;
图2为本申请实施例提供的一种数据库性能测试方法的流程图;
图3为本申请实施例提供的另一种数据库性能测试方法的流程图;
图4为本申请实施例提供的一种数据库测试方法的流程图之二;
图5为本申请实施例提供的一种数据库测试装置的结构图之一;
图6为本申请实施例提供的一种数据库测试装置的结构图之二;
图7为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的数据库测试方法、装置、电子设备及可读存储介质进行详细地说明。
请参照图1,图1是本申请实施例提供的一种数据库测试方法的流程图。如图1所示,所述数据库测试方法包括以下步骤:
步骤101、从第一业务***在第一时段内生成的结构化查询语言(StructuredQuery Language,SQL)日志中,获取至少一个SQL样本,所述第一业务***为部署有第一数据库的业务***;
步骤102、在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;
步骤103、基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果。
本申请实施例提供的所述数据库测试方法可以是应用于数据库测试装置、也可以是应用于电子设备。为更好地理解,以下将以所述方法应用于电子设备为例对本申请提供的技术方案进行具体说明。
需要说明的是,本申请实施例的部分数据库测试过程,与时间区间具有关联,为了达到更好的测试效果,在步骤101之前,可统一生产环境服务器与测试环境服务器的时区。其中,生产环境服务器即生产环境业务***的服务器,测试环境服务器即本申请实施例中用于测试的装置或者电子设备的服务器。作为示例,本申请实施例中,可通过网络时间协议(Network Time Protocol,NTP)来统一生产环境服务器与测试环境服务器的时区。NTP 是一种用于计算机时钟同步的协议,通过NTP 能够使不同主机之间的时钟保持一致或无限接近。
在步骤101中,第一业务***为生产环境的业务***,业务***也可称为业务应用***。第一业务***部署有第一数据库,第一数据库为可能需要被第二数据库替换的数据库。第一业务***在第一时段生成的SQL日志中,包括但不限于第一时段内的第一数据库用户、SQL事务ID、执行预编译SQL文本、执行SQL文本、SQL参数,SQL执行开始时间戳、SQL执行耗时以及SQL执行结果(成功还是失败)等等信息。从SQL日志中,可获取至少一个SQL样本。相较于SQL日志,SQL样本中滤除了与数据库测试无关的一些信息;且SQL样本中保留有数据库测试有关的一些信息,例如SQL执行开始时间戳以及SQL执行耗时等。
在步骤102中,第二数据库为可能会替换第一数据库的数据库,在第二数据库的测试结果(包括性能测试结果和兼容性测试结果)满足要求的情况下,第二数据库可用于替换第一数据库。在第二数据库中回放至少一个SQL样本,即,电子设备将SQL样本中的SQL语句推送至第二数据库中执行。本申请实施例中,电子设备可为部署有Java数据库连接(JavaDatabase connect,JDBC)应用的电子设备,可通过JDBC应用在第二数据库中回放至少一个SQL样本。
第二数据库预先同步有第一数据库在第一时刻T1的数据,其中数据包括数据对象和全量数据。其中数据对象例如:表、索引、约束、注释和视图等,全量数据例如:表中的数据等。为了更清楚地理解本申请实施例中的数据同步,以下对其进行具体说明。
第一业务***为生产环境业务***,第一业务***部署的第一数据库为生产环境数据库,为了降低对生产环境数据库的影响,本申请实施例可创建第一数据库在第一时刻T1的镜像数据库,通过建立镜像数据库与第二数据库的同步任务,间接实现将第一数据库在第一时刻T1的数据同步至第二数据库,具体步骤如下:
a.指定第一时刻T1之前的某个时刻对第一数据库文件进行全量备份,同时备份该时刻到第一时刻T1之间的所有第一数据库日志。通过“不完全恢复技术”,可在测试环境构建第一时刻T1的第一数据库所对应的镜像数据库。其中,若第一数据库是oracle数据库,在恢复时使用RMAN工具指定until time参数等于第一时刻T1,即可实现数据恢复,通过使用resetlogs参数即可启动镜像数据;若第一数据库是mysql数据库,在完成数据库备份恢复后,还需要指定stop-datetime参数等于第一时刻T1来对binlog文件进行解析,并将解析后的得到的SQL语句在镜像数据库中运行,这样,即可实现构建第一时刻T1的第一数据库对应的镜像数据库。
b.启动镜像数据库与第二数据库的数据对象同步任务,根据镜像数据库中的数据对象(表、索引、约束、注释和视图等)定义的内容,将镜像数据库的数据对象同步至第二数据库。在将数据对象同步至第二数据库之后,启动镜像数据库与第二数据库的全量数据同步任务,将镜像数据库中的全量数据复制至第二数据库。在同步过程中,需保持镜像数据库与第二数据库之间的网络连通,并监控同步任务状态、观察数据同步进展以及验证数据同步结果,以确保能够将镜像数据库的全量数据均同步至第二数据库。
通过上述步骤,建立镜像数据库与第二数据库的同步任务,而非直接建立第一数据库与第二数据库的同步任务,这样,能够减少对生产环境数据库(即第一数据库)的干扰,从而有利于生产环境的稳定性和可靠性。
需要说明的是,本申请实施例中,在将镜像数据库中的数据对象和全量数据同步至第二数据库之后,且在第二数据库中回放SQL样本之前,第二数据库的状态为初始状态,可对第二数据库的初始化状态进行备份。在对第二数据库进行测试的过程中,需要将SQL样本放入第二数据库中进行回放,每次回放之后,将产生测试数据,本申请实施例在测试之后可对产生的测试数据进行擦除,基于备份的第二数据库的初始化状态,将第二数据库恢复至初始化状态,以满足对第二数据库进行重复测试的要求。通过对第二数据库的初始化状态进行备份,从而能够将经过测试后的第二数据库重新恢复至初始状态,而无需通过再次进行同步的方式将第二数据库恢复至初始状态,这样,能够较大程度节约第二数据库恢复至初始状态的时间。
在步骤103中,SQL样本的回放结果能够反映出第二数据库的性能或者兼容性。其中,SQL样本中的SQL语句在第二数据库中执行的时长。能够反映第二数据库的性能,SQL样本中的SQL语句在第二数据库中执行的正确率,能够反映第二数据库的兼容性。基于至少一个SQL样本中的每个SQL样本的回放结果,确定第二数据库的测试结果,测试结果可包括数据库性能测试结果和数据库兼容性测试结果。
本申请实施例能够大大减少数据库测试过程中的人工操作,从而降低测试结果的差异性,提高数据库测试的效率,有效推动规模化数据库移植。
可选的,所述从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本,包括:
从第一子时段的SQL日志中获取第一SQL样本;
从第二子时段的SQL日志中获取第二SQL样本,所述第一子时段和所述第二子时段均为所述第一时段的子时段,所述第二子时段的时长大于所述第一子时段的时长,且所述第一子时段的开始时刻为所述第一时刻;
所述基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果,包括:
基于所述第一SQL样本的回放结果,确定所述第二数据库的性能测试结果;
基于所述第二SQL样本的回放结果,确定所述第二数据库的兼容性测试结果。
从第一子时段的SQL日志中获取第一SQL样本,第一子时段为第一时段的子时段,且第一子时段的开始时刻为第一时刻T1。第一SQL样本用于性能测试,性能测试通常需要进行全量SQL回放,即,需要将第一SQL样本中的SQL语句全量推送至第二数据库中执行。通过比较第一SQL样本在第一数据库的执行总时长与第一SQL样本在第二数据库的执行总时长,从而能够确定第二数据库的性能测试结果,例如:若第一SQL样本在第一数据库的执行总时长更长,则表征第二数据库的性能较佳。
其中,第一子时段的时间跨度通常不超过一天,第一子时段通常可为第一业务***的用户访问量高峰时段。容易理解地,用户访问量的高峰时段,SQL语句高并发,从用户访问量高峰时段的SQL日志中获取的第一SQL样本,其包括高并发的SQL语句,将第一SQL样本中高并发的SQL语句全量推送至第二数据库,基于高并发的SQL语句在第二数据库中的执行情况,更加能够反映出第二数据库的性能,从而有利于提高性能测试效果。
从第二子时段的SQL日志中获取第二SQL样本,第二SQL样本用于兼容性测试。其中,第二子时段和第一子时段可以是没有重叠的子时段,例如第一子时段可为T1时刻至T2时刻,第二子时段可以是T2时刻至T3时刻;第二子时段和第一子时段也可以是有重叠的子时段。兼容性测试通常无需进行全量SQL回放,即,无需将第二SQL样本中的全量SQL语句均推送至第二数据库中执行。数据库的兼容性量化指标可为SQL正确执行的百分比,本申请实施例中,根据第二数据库中正确执行的SQL语句的数量,与推送至第二数据库的SQL语句总数量的比值,可确定第二数据库的兼容性测试结果。第二子时段的时长大于第一子时段的时长,第二子时段的时长通常可大于一周,这样,第二SQL样本中的SQL语句能够更加具有多样性,通过确定多样性的SQL语句在第二数据库中的执行正确百分比,有利于提高兼容性测试结果的可靠性。
本申请实施例中,第二子时段的时长大于第一子时段的时长,从而第二SQL样本中的SQL语句能够更加具有多样性,通过多样性的SQL语句在第二数据库中的执行结果来确定数据库兼容性,有利于提高兼容性测试结果的可靠性。
可选的,所述在第二数据库中回放所述至少一个SQL样本,包括:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库开始执行的时间;
根据排序后的所述第一SQL样本中的第一条SQL语句的开始执行时间戳,以及各目标SQL语句分别对应的开始执行时间戳,分别确定各目标SQL语句与第一条SQL语句的执行间隔时长,所述目标SQL语句为所述第一SQL样本中除所述第一条SQL语句以外的SQL语句;
将所述第一条SQL语句推送至所述第二数据库中执行,并按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,将所述各目标SQL语句分别推送至所述第二数据库执行。
第一SQL样本中,保存有各SQL语句的开始执行时间戳,开始执行时间戳用于表征SQL语句在生产环境数据库开始执行的时间。按照第一SQL样本中的各SQL语句分别对应的开始时间戳,对第一SQL样本中的各SQL语句进行排序,从而排序后的第一SQL样本中的第一条SQL语句,在第一时段内的第一数据库中的开始执行时间最早。
根据排序后的第一SQL样本中的第一条SQL语句的开始执行时间戳,以及各目标SQL语句分别对应的开始执行时间戳,可分别确定各目标SQL语句与第一条SQL语句的执行间隔时长,目标SQL语句为第一SQL样本中除第一条SQL语句以外的SQL语句。每条目标SQL语句与第一条SQL语句的执行间隔时长为:该条目标SQL语句在第一数据库的开始执行时间-第一条SQL语句在第一数据库的开始执行时间。如图2所示,本申请实施例中,可为每条目标SQL语句添加字段sql.time,目标SQL语句对应的sql.time用于表征该条目标SQL语句与第一条SQL语句的间隔执行时长。
在第二数据库中回放第一SQL样本时,先将第一条SQL语句推送至第二数据库中执行,再按照各目标SQL语句述第一条SQL语句的执行间隔时长,分别将各目标SQL语句推送至第二数据库执行。
以排序后的第一SQL样本中的第M条目标SQL语句作为示例,在距离推送第一条SQL语句的时长(time)大于或者等于第M条SQL语句与第一条SQL语句的执行间隔时长(sql.time)的情况下,将第M条SQL语句推送至第二数据库中执行,M为大于1的整数,
将第一条SQL语句和所有目标SQL语句在第二数据库中的执行总时长,与第一条SQL语句和所有目标SQL语句在第一数据库中的执行总时长进行比较,从而可确定第二数据库的性能测试结果。
本申请实施例中,通过将第一条SQL语句推送至第二数据库中执行,并按照各目标SQL语句与第一条SQL语句的执行间隔时长,将各目标SQL语句分别推送至第二数据库执行,从而能够高度模拟第一SQL样本的各SQL语句在生产环境的开始执行时间,从而有利于提高性能测试结果的可靠性。
可选的,所述按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,将所述各目标SQL语句分别推送至所述第二数据库执行,包括:
创建N个线程,N为大于1的整数;
将排序后的所述第一SQL样本中的各SQL语句依次分配至所述N个线程中;
按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,通过所述N个线程将所述各目标SQL语句依次推送至所述第二数据库中执行。
该实施方式中,在分别确定各目标SQL语句与第一条SQL语句的执行间隔时长之后,可启动JDBC应用,创建N个线程,N可为每次进行数据库测试时,人工预先设定的值,作为示例,N可取50。需要说明的是,在一些实施例中,还可通过线程扩容算法,动态调整N值。
如图2所示,可先将排序后的第一SQL样本中的各SQL语句顺序地读取到JDBC应用的内存中,再将排序后的第一SQL样本中的各SQL语句依次分配至N个线程。需要说明的是,在第一SQL样本中的SQL语句的数量小于或者等于N的情况下,将排序后的第一SQL样本中的各SQL语句依次分配至N个线程即可;在第一SQL样本中的SQL语句的数量大于N的情况下,将排序后的第一SQL样本中的各SQL语句依次轮流分配至N个线程即可。
为了更清楚地理解本申请实施例的“依次轮流分配”,以下结合具体示例进行说明:
若第一SQL样本中包括20个SQL语句,将20个SQL语句排序后,分别为SQL1至SQL20。若预先设定的线程的数量为10,则分别在线程1至线程10所持的队列中***SQL1至SQL10,再从线程1开始,分别在线程1至10所持的队列中***SQL11至SQL20。
在将排序后的第一SQL样本中的各SQL语句依次分配至N个线程中之后,***有第一条SQL语句(即图2中的SQL1)的线程将第一条SQL语句推送至第二数据库中执行;并按照各目标SQL语句与第一条SQL语句的执行间隔时长,依次通过N个线程将各SQL语句分别推送至第二数据库执行。具体地,可通过毫秒级时间轮算法实现,以下对其进行具体说明。
如图2所示,本申请实施例预先定义了一个长整型变量long time,在开始推送SQL语句时,长整型变量long time开始进行递增1的运算,从而该长整型变量的值可用于表征距离推送第一条SQL语句的时长。例如,可定义每经过1毫秒,长整型变量递增1,在开始推送SQL语句时,长整型变量开始进行递增1的运算,从而若长整型变量当前为10,则表征距离推送第一条SQL语句的时长为10毫秒。N个线程均监控长整型变量的值,当长整型变量time大于或者等于任一线程队列头部的目标SQL语句对应的sql.time(sql.time为提前为目标SQL语句添加的字段,目标SQL语句对应的sql.time用于表征该目标SQL语句与第一条SQL语句的执行间隔时长),则该SQL语句对应的线程可通过JDBC将其推动到第二数据库端执行(即图2中的将到期的SQL语句推送至第二数据库)。具体地,由SQL处理引擎执行SQL语句。SQL处理引擎执行SQL语句后,可记录SQL语句执行结果,执行结果主要包括SQL语句的执行时长。
本申请实施例中,通过将排序后的第一SQL样本中的各SQL语句依次分配至N个线程,这样,在存在多个目标SQL语句与第一SQL语句的执行间隔时长相同的情况下,N个线程可分别将该多个目标SQL语句同时推送至第二数据库中执行,并且推送精度可达到毫秒级。可见,本申请实施例能够高度模拟SQL语句在生产环境的并发情形,有利于提高性能测试结果的可靠性。
可选的,所述在第二数据库中回放所述至少一个SQL样本,包括:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库中开始执行的时间;
从排序后的所述第一SQL样本中获取固定时间间隔的多个SQL语句集合,所述多个SQL语句集合分别对应的第一执行时长均等于或者小于所述固定时间间隔,所述第一执行时长为SQL语句集合在第一数据库的执行时长;
将所述多个SQL语句集合依次推送至所述第二数据库中执行,其中,在第一SQL语句集合在第二数据库中执行完毕的情况下,按照第二SQL语句集合中的各SQL语句的排序,将第二SQL语句集合中的各SQL语句依次推送至所述第二数据库执行,所述第一SQL语句集合为所述多个SQL语句集合中的任一SQL语句集合,所述第二SQL语句集合为所述第一SQL语句集合的下一SQL语句集合。
如图3所示,根据第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对第一SQL样本中各SQL语句进行排序,图3中的SQL1即为本申请实施例中的排序后的第一条SQL语句。
从排序后的第一SQL样本中获取固定时间间隔多个SQL语句集合,固定时间间隔例如1秒、1分钟或者1小时等等,固定时间间隔为根据测试需求预先设置,时间间隔越短,第一样本在第二测试库中的回放结果越接近生产负载情况。多个SQL语句集合分别对应的第一执行时长均等于或者小于固定时间间隔,每个SQL语句集合通常包括多条SQL语句,某个SQL语句集合中的多条SQL语句在第一数据库的累计执行时长,即为该SQL语句集合对应的第一执行时长。
若第一样本中的所有SQL语句在第一数据库的执行总时长为固定时间间隔的整数倍,则每个SQL语句集合对应的第一执行时长均等于固定时间间隔;若第一样本中的SQL语句在第一数据库的执行总时长不为固定时间间隔的整数倍,则最后推送的SQL语句集合的第一执行时长小于固定时间间隔。例如:若固定时间间隔为1小时,且第一SQL样本中的所有SQL语句在第一数据库的执行总时长为三小时,则可获取三个SQL语句集合,每个SQL语句集合对应的第一执行时长均为1小时。
本申请实施例将多个SQL语句集合依次推送至第二数据库中执行。其中,在第一SQL语句集合在第二数据库中执行完毕的情况下,按照第二SQL语句集合中的各SQL语句的排序,将第二SQL语句集合中的各SQL语句依次推送至所述第二数据库执行,第一SQL语句集合为多个SQL语句集合中的任一SQL语句集合,第二SQL语句集合为第一SQL语句集合的下一SQL语句集合。
如图3所示,作为示例,本申请实施例可通过线程将多个SQL语句集合依次推送至第二数据库中执行。具体地,可预先设置分组和分组数量M,并为每一个组指定一个组编码,根据组编码的数量,按照比例计算出所需的线程池的大小,例如可设置线程池中的线程数量等于组编码的数量,即线程数量也为M,M为大于1的整数。将获取到的第一SQL语句集合中的各SQL语句平均分配至M个组中,每个线程获取一个组的SQL语句,M个线程按照组内的顺序,分别将每个组的SQL语句依次推送到第二数据库;在第一SQL语句集合在第二数据库中均执行完毕的情况下,获取第二SQL语句集合,将第二SQL语句集合中的各SQL语句平均分配至M个组中,M个线程依照上述推送第一SQL语句集合的方法将第二SQL语句推送至第二数据库中执行,为避免重复,对此不再赘述。在将所有SQL语句集合均依次推送至第二数据库之后,并且通过SQL处理引擎将所有SQL语句均执行完成之后,得到第一样本的回放结果。
本申请实施例中,从排序后的第一SQL样本中获取固定时间间隔的多个SQL语句集合,固定时间间隔可为几秒钟、几分钟或者几小时等,这样,在第一样本中各SQL语句的开始执行时间戳以及执行时长并未保留到毫秒级,而是保留到秒级或者分钟级的情况下,根据本申请实施例也可获取到对应的SQL语句集合,从而能够提高数据库性能测试的适配性。
可选的,所述在第二数据库中回放所述至少一个SQL样本,包括:
将所述第二SQL样本中的SQL语句进行去重;
在所述第二数据库中回放去重后的所述第二SQL样本。
该实施方式中,第二SQL样本用于数据库兼容性测试,对第二SQL样本中的SQL语句进行去重,在保留SQL语句的多样性能够有效减少SQL语句的数量。
以下,对本申请实施例中的SQL语句去重方法进行示例性说明。
a. 将SQL样本按照行标准化的预处理规则进行清洗,如将所有的空格和换行符去掉、保留关键字等;对于只是参数变量不同的多条SQL语句,可将参数变量进行替换处理,例如均替换为同一值。
b. 本申请实施例中的电子设备还部署有SQL样本预处理模块。对每个经过清洗处理后的SQL语句,由SQL样本预处理模块使用统一规则生成固定长度的哈希值,预处理模块依据哈希值进行SQL样本的去重。由于使用哈希表可以在 O(1) 的时间内完成查找和***操作,因此可以大幅提高去重效率,对于可能出现的哈希冲突的特殊场景,可以额外使用加盐法等方式来对哈希值的生成进行优化。
c.本申请实施例中,预处理模块在进行SQL样本去重时还可对原始SQL语句、标准化清洗处理后的SQL语句以及处理后的SQL语句计算出的哈希值等信息进行保存,支撑后续进行的仿真测试、预处理样本SQL的分析统计及优化原始SQL语句。
通过去重,可以使第二SQL样本中的SQL语句数量大大减少,比如200万条SQL语句经过去重可以减少至800条,从而有效提高SQL兼容性测试效率。本申请实施例中,兼容性测试结果的量化指标可为SQL样本去重后执行正确的百分比,即去重后的第二SQL样本在第二数据库中正确执行的SQL数量,除以去重后的第二SQL样本的SQL总数量。
本申请实施例中,对第二SQL样本中的SQL语句进行去重,在保留SQL语句多样性的同时,能够有效减少SQL语句的数量,从而通过在第二数据库中回放去重后的第二SQL样本,能够在保证兼容性测试结果的可靠性的同时,有效提高兼容性测试效率。
可选的,所述从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本之前,所述方法还包括:
在所述第一业务***中部署应用性能管理(Application PerformanceManagement,APM)探针,通过所述APM探针采集所述第一业务***在第一时段内生成的SQL日志。
在第一业务***部署APM探针,无侵入式采集第一业务***运行时的SQL日志。其中,SQL日志中的大部分数据项的采集可以通过APM对采用JDBC执行SQL语句的单个方法进行拦截实现。其中,SQL日志中的SQL语句事务信息,可通过如下方式获取:
在第一业务***开始启用事务到结束事务的一个完整且独立的事务周期内,由APM探针对事务周期中的多个方法进行拦截,并在方法开启SQL事务时就生成的全局唯一的SQL事务ID保存于探针的上下文中。上下文中的SQL事务ID可通过APM探针组件在本事务涉及的多个方法中传递,参与事务的识别与标记,事务ID可保留于SQL日志中。当APM探针完成对某个事务信息的采集时,APM探针可对该事务ID进行清空,避免在后续其他的事件中被错误的使用,造成混淆。需要说明的是,对于事务中的存储过程信息,可通过监控CallableStatement对象的execute()方法来获取存储过程的SQL语句以及其他相关信息。
相关技术中,通常在生产环境业务***中埋点来采集SQL语句,而埋点需要修改业务***应用程序,即侵入式采集SQL语句,埋点不具备统一性,针对特定用户行为或事件,实现规模化数据库移植较为费时费力。本身实施例中,通过APM探针实现无侵入式采集SQL语句,有利于提高采集效率,进而有利于提高推动规模化数据库移植。
为了更清楚地理解本申请实施例的技术方案,以下结合图4进一步说明。
如图4所示,在一些实施方式中,本申请实施例的数据库测试方法包括以下步骤:
步骤a:生产环境服务器与测试环境服务器时钟同步,即统一生产环境服务器与测试环境服务器的时区。
步骤b:在生产环境应用服务(即生产环境业务***)部署APM探针,采集生产环境应用服务在本次测试周期(比如T1至T3)的SQL日志;
步骤c:选择T1前的一个时间点开始备份生产数据库,同时备份该时间点至T1时间点的数据库日志,以构建T1时刻的生产环境数据库对应的镜像数据库。
步骤d:将镜像数据库中的数据对象及全量数据同步至测试数据库,完成测试数据准备,测试数据库即本申请实施例的第二数据库。在测试数据库具有多个的情况下,可将镜像数据库中的数据对象及全量数据分别同步至多个测试数据库,并且,后续可根据需求选择任一测试数据库进行性能测试和兼容性测试。
步骤e:执行SQL性能测试,选择一个高峰时段(T1-T2)之间的生产环境的全量SQL语句,根据上述实施例中的方法将全量SQL语句放入测试数据库中进行回放,并根据回放结果确定数据库性能测试结果,同时输出性能测试报告。
步骤f:执行SQL兼容性测试,选择较长时间段(T2-T3)之间的生产环境的全量SQL语句,将该全量SQL语句进行预处理去重,将去重后的SQL语句推入测试数据库,以进行SQL兼容性回放,根据SQL兼容性回放结果,确定测试数据库的兼容性,同时输出兼容性测试报告。需要说明的是,具体的兼容性测试的步骤可参照上述实施例,为避免重复,对此不再赘述。
需要说明的是,在一些实施例中,本申请实施例还提供了一种数据库测试装置,所述装置包括:应用***配置模块、目标数据库配置模块、生产SQL样本读取模块、配置模块、SQL处理引擎和测试结果查询模块。
如图5所示,应用***配置模块用于用户注册应用***信息,应用***即业务***,应用***信息,是被测试SQL语句的上层集合,每次注册一个应用***信息,工具会为其生成一个唯一编码。所有通过SQL日志获取的SQL样本都需要关联于某一个应用***,例如,通过应用***A的SQL日志获取的所有SQL样本均需要关联于应用***A。
目标数据库配置模块用于用户创建被测试数据库(Data Base,DB)(例如图5中的DB1、DB2和DB3)信息,用户需要填写数据库名称、数据库驱动jar包、数据库驱动类名等信息。
生产SQL样本读取模块,可将从生产SQL日志中获取的SQL样本上传至生产SQL样本读取模块,并选择SQL样本对应的应用***编码,例如从应用***A的生产SQL日志中获取的SQL样本,选择应用***A的编码;一个应用***,可以对应多个SQL样本,每个SQL样本可分配一个版本号。
配置模块,用户通过配置模块创建测试配置实例,选择要测试的应用***、SQL样本的版本、目标数据库信息(目标数据库应为目标数据库配置模块中的测试数据库的其中之一),并填写个性化的测试线程数量等信息。
SQL处理引擎,用于根据上述实施例中的数据库性能测试方法和兼容性测试方法动态执行SQL样本,实现确定SQL执行时间和是否成功的核心业务逻辑。
测试结果查询模块,用户可以根据应用***、目标数据库、测试的SQL版本等信息,查询测试结果。
本申请实施例还提供了另一种数据库测试装置200,如图6所示,数据库测试装置200包括:
获取模块201,用于从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本,所述第一业务***为部署有第一数据库的业务***;
回放模块202,用于在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;
确定模块203,用于基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果。
可选的,所述获取模块201具体用于:
从第一子时段的SQL日志中获取第一SQL样本;
从第二子时段的SQL日志中获取第二SQL样本,所述第一子时段和所述第二子时段均为所述第一时段的子时段,所述第二子时段的时长大于所述第一子时段的时长,且所述第一子时段的开始时刻为所述第一时刻;
确定模块203具体用于:
基于所述第一SQL样本的回放结果,确定所述第二数据库的性能测试结果;
基于所述第二SQL样本的回放结果,确定所述第二数据库的兼容性测试结果。
可选的,回放模块202具体用于:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库开始执行的时间;
根据排序后的所述第一SQL样本中的第一条SQL语句的开始执行时间戳,以及各目标SQL语句分别对应的开始执行时间戳,分别确定各目标SQL语句与第一条SQL语句的执行间隔时长,所述目标SQL语句为所述第一SQL样本中除所述第一条SQL语句以外的SQL语句;
将所述第一条SQL语句推送至所述第二数据库中执行,并按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,将所述各目标SQL语句分别推送至所述第二数据库执行。
可选的,回放模块202具体还用于:
创建N个线程,N为大于1的整数;
将排序后的所述第一SQL样本中的各SQL语句依次分配至所述N个线程中;
通过分配有第一条SQL语句的线程将所述第一条SQL语句推送至所述第二数据库中执行;
按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,依次通过所述N个线程将所述各目标SQL语句分别推送至所述第二数据库中执行。
可选的,回放模块202具体还用于:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库中开始执行的时间;
从排序后的所述第一SQL样本中获取固定时间间隔的多个SQL语句集合,所述多个SQL语句集合分别对应的第一执行时长均等于或者小于所述固定时间间隔,所述第一执行时长为SQL语句集合在第一数据库的执行时长;
将所述多个SQL语句集合依次推送至所述第二数据库中执行,其中,在第一SQL语句集合在第二数据库中执行完毕的情况下,按照第二SQL语句集合中的各SQL语句的排序,将第二SQL语句集合中的各SQL语句依次推送至所述第二数据库执行,所述第一SQL语句集合为所述多个SQL语句集合中的任一SQL语句集合,所述第二SQL语句集合为所述第一SQL语句集合的下一SQL语句集合。
可选的,回放模块202具体还用于:
将所述第二SQL样本中的SQL语句进行去重;
在所述第二数据库中回放去重后的所述第二SQL样本。
可选的,数据库测试装置200包括:
在所述第一业务***中部署应用性能管理APM探针,通过所述APM探针采集所述第一业务***在第一时段内生成的SQL日志。
需要说明的是,本申请实施例的数据库测试装置能够实现以上所述的数据库测试方法实施例的各个过程,并能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种电子设备300,参见图7,包括至少一个处理器301、存储器302及存储在存储器302上并可在处理器301上运行的计算机程序,计算机程序被至少一个处理器301执行以实现上述数据库测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器301执行以实现上述数据库测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中计算机可读存储介质,包括只读存储器Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (8)
1.一种数据库测试方法,其特征在于,所述方法包括:
从第一业务***在第一时段内生成的结构化查询语言SQL日志中,获取至少一个SQL样本,包括:从第一子时段的SQL日志中获取第一SQL样本;从第二子时段的SQL日志中获取第二SQL样本,所述第一子时段和所述第二子时段均为所述第一时段的子时段,所述第二子时段的时长大于所述第一子时段的时长,且所述第一子时段的开始时刻为第一时刻;所述第一业务***为部署有第一数据库的业务***;
在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;
基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果,包括:基于所述第一SQL样本的回放结果,确定所述第二数据库的性能测试结果;基于所述第二SQL样本的回放结果,确定所述第二数据库的兼容性测试结果;
所述在第二数据库中回放所述至少一个SQL样本,包括:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库开始执行的时间;
根据排序后的所述第一SQL样本中的第一条SQL语句的开始执行时间戳,以及各目标SQL语句分别对应的开始执行时间戳,分别确定所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,所述目标SQL语句为所述第一SQL样本中除所述第一条SQL语句以外的SQL语句;
将所述第一条SQL语句推送至所述第二数据库中执行,并按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,将所述各目标SQL语句分别推送至所述第二数据库执行。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一条SQL语句推送至所述第二数据库中执行,并按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,将所述各目标SQL语句分别推送至所述第二数据库执行,包括:
创建N个线程,N为大于1的整数;
将排序后的所述第一SQL样本中的各SQL语句依次分配至所述N个线程中;
通过分配有第一条SQL语句的线程将所述第一条SQL语句推送至所述第二数据库中执行;
按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,依次通过所述N个线程将所述各目标SQL语句分别推送至所述第二数据库中执行。
3.根据权利要求1所述的方法,其特征在于,所述在第二数据库中回放所述至少一个SQL样本,包括:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库中开始执行的时间;
从排序后的所述第一SQL样本中获取固定时间间隔的多个SQL语句集合,所述多个SQL语句集合分别对应的第一执行时长均等于或者小于所述固定时间间隔,所述第一执行时长为SQL语句集合在所述第一数据库的执行时长;
将所述多个SQL语句集合依次推送至所述第二数据库中执行,其中,在第一SQL语句集合在第二数据库中执行完毕的情况下,按照第二SQL语句集合中的各SQL语句的排序,将所述第二SQL语句集合中的各SQL语句依次推送至所述第二数据库执行,所述第一SQL语句集合为所述多个SQL语句集合中的任一SQL语句集合,所述第二SQL语句集合为所述第一SQL语句集合的下一SQL语句集合。
4.根据权利要求1所述的方法,其特征在于,所述在第二数据库中回放所述至少一个SQL样本,包括:
将所述第二SQL样本中的SQL语句进行去重;
在所述第二数据库中回放去重后的所述第二SQL样本。
5.根据权利要求1所述的方法,其特征在于,所述从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本之前,所述方法还包括:
在所述第一业务***中部署应用性能管理APM探针,通过所述APM探针采集所述第一业务***在第一时段内生成的SQL日志。
6.一种数据库测试装置,其特征在于,包括:
获取模块,用于从第一业务***在第一时段内生成的SQL日志中,获取至少一个SQL样本,所述第一业务***为部署有第一数据库的业务***;
回放模块,用于在第二数据库中回放所述至少一个SQL样本,以得到所述至少一个SQL样本中的每个SQL样本的回放结果,所述第二数据库预先同步有所述第一数据库在第一时刻的数据,所述第一时刻为所述第一时段的开始时刻;
确定模块,用于基于所述至少一个SQL样本中的每个SQL样本的回放结果,确定所述第二数据库的测试结果;
所述获取模块具体用于:
从第一子时段的SQL日志中获取第一SQL样本;
从第二子时段的SQL日志中获取第二SQL样本,所述第一子时段和所述第二子时段均为所述第一时段的子时段,所述第二子时段的时长大于所述第一子时段的时长,且所述第一子时段的开始时刻为所述第一时刻;
所述确定模块具体用于:
基于所述第一SQL样本的回放结果,确定所述第二数据库的性能测试结果;
基于所述第二SQL样本的回放结果,确定所述第二数据库的兼容性测试结果;
所述回放模块具体用于:
按照所述第一SQL样本中的各SQL语句分别对应的开始执行时间戳,对所述第一SQL样本中各SQL语句进行排序,所述开始执行时间戳为SQL语句在所述第一数据库开始执行的时间;
根据排序后的所述第一SQL样本中的第一条SQL语句的开始执行时间戳,以及各目标SQL语句分别对应的开始执行时间戳,分别确定各目标SQL语句与第一条SQL语句的执行间隔时长,所述目标SQL语句为所述第一SQL样本中除所述第一条SQL语句以外的SQL语句;
将所述第一条SQL语句推送至所述第二数据库中执行,并按照所述各目标SQL语句与所述第一条SQL语句的执行间隔时长,将所述各目标SQL语句分别推送至所述第二数据库执行。
7.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的数据库测试方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至5任一项所述的数据库测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311244498.1A CN116991691B (zh) | 2023-09-26 | 2023-09-26 | 数据库测试方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311244498.1A CN116991691B (zh) | 2023-09-26 | 2023-09-26 | 数据库测试方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116991691A CN116991691A (zh) | 2023-11-03 |
CN116991691B true CN116991691B (zh) | 2024-01-30 |
Family
ID=88523507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311244498.1A Active CN116991691B (zh) | 2023-09-26 | 2023-09-26 | 数据库测试方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991691B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019154394A1 (zh) * | 2018-02-12 | 2019-08-15 | 中兴通讯股份有限公司 | 分布式数据库集群***、数据同步方法及存储介质 |
CN111625472A (zh) * | 2020-06-30 | 2020-09-04 | 深圳前海微众银行股份有限公司 | 一种单元测试方法及装置 |
CN114238395A (zh) * | 2022-01-06 | 2022-03-25 | 税友软件集团股份有限公司 | 一种数据库优化方法、装置、电子设备及存储介质 |
CN116089285A (zh) * | 2023-01-06 | 2023-05-09 | 苏州浪潮智能科技有限公司 | 一种数据库测试方法、装置、电子设备及可读介质 |
-
2023
- 2023-09-26 CN CN202311244498.1A patent/CN116991691B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019154394A1 (zh) * | 2018-02-12 | 2019-08-15 | 中兴通讯股份有限公司 | 分布式数据库集群***、数据同步方法及存储介质 |
CN111625472A (zh) * | 2020-06-30 | 2020-09-04 | 深圳前海微众银行股份有限公司 | 一种单元测试方法及装置 |
CN114238395A (zh) * | 2022-01-06 | 2022-03-25 | 税友软件集团股份有限公司 | 一种数据库优化方法、装置、电子设备及存储介质 |
CN116089285A (zh) * | 2023-01-06 | 2023-05-09 | 苏州浪潮智能科技有限公司 | 一种数据库测试方法、装置、电子设备及可读介质 |
Non-Patent Citations (2)
Title |
---|
关系数据库管理***的SQL―致性测试和性能基准测试;陈瑜, 彭甫阳;计算机工程与应用(第12期);全文 * |
通用海量数据库性能测试***的设计与实现;武海平;余宏亮;郑纬民;;清华大学学报(自然科学版)(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116991691A (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
CN102289460B (zh) | 一种向测试环境进行报表元数据同步的方法及*** | |
CN109271326B (zh) | 云数据库的测试方法及其装置、设备和存储介质 | |
CN102117303A (zh) | 一种专利数据分析方法和*** | |
CN110008129B (zh) | 一种存储定时快照的可靠性测试方法、装置及设备 | |
CN107515874A (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
CN109684211B (zh) | 一种基于店铺维度的订单调度***压力测试方法及装置 | |
US6708185B2 (en) | SQL execution analysis | |
Rabl et al. | Just can't get enough: Synthesizing Big Data | |
CN116010452A (zh) | 基于流式计算引擎的工业数据处理***和方法、介质 | |
CN110515958A (zh) | 基于大数据的数据一致性方法、装置、设备和存储介质 | |
EP2196901A1 (en) | Systems and methods for tracking software stands in a software production landscape | |
CN116991691B (zh) | 数据库测试方法、装置、电子设备及可读存储介质 | |
CN112328546B (zh) | 一种基于数据中台的增量数据核查方法 | |
US20070055693A1 (en) | Data recovery method | |
CN104317820B (zh) | 报表的统计方法和装置 | |
Gunnarsson et al. | The most popular programming languages of GitHub's trending repositories | |
CN115757175A (zh) | 一种交易日志文件处理方法及装置 | |
CN114691519A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN108629002A (zh) | 一种基于kettle的大数据比对方法及装置 | |
CN108197135A (zh) | 一种基于mogodb的数据库数据聚合同步的方法 | |
CN112685230A (zh) | 一种分布式数据库实现指定时间点备份还原的方法 | |
CN112612852A (zh) | 数据同步方法及装置、电子设备、存储介质 | |
US8527465B1 (en) | System and method for modeling data change over time | |
CN117312175B (zh) | 数据处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |