CN112559195A - 数据库死锁的检测方法、装置、测试终端及介质 - Google Patents
数据库死锁的检测方法、装置、测试终端及介质 Download PDFInfo
- Publication number
- CN112559195A CN112559195A CN202011569979.6A CN202011569979A CN112559195A CN 112559195 A CN112559195 A CN 112559195A CN 202011569979 A CN202011569979 A CN 202011569979A CN 112559195 A CN112559195 A CN 112559195A
- Authority
- CN
- China
- Prior art keywords
- target
- source code
- sequence
- execution
- executable program
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种数据库死锁的检测方法、装置、测试终端及介质,涉及数据处理技术领域,包括:获取可执行程序对应的目标程序的测试日志文件,其中,目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识;对测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行预设业务功能的多个进程的日志文件;从每个进程的日志文件中过滤出具有检测标识的日志记录,并生成每个进程的表执行顺序,若多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。在执行边界的信息明确时,所确定的表信息、表执行顺序更加准确,因此,基于该表执行顺序进行死锁检测时,所获取的检测结果也更加准确。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据库死锁的检测方法、装置、测试终端及介质。
背景技术
异步并发处理数据库,可以提高程序执行的效率,而并发处理数据库常常伴随着数据库死锁问题。因此,对于测试数据库的死锁进行测试也越来越重要。
相关技术中,在测试数据库死锁时,通过高并发压测服务接口的方式检测数据库死锁。
但是,相关技术中,通过高并发压测服务接口的方式检测数据库死锁时,容易出现测试准确度较低的问题。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种数据库死锁的检测方法、装置、测试终端及介质,以便解决相关技术中,通过高并发压测服务接口的方式检测数据库死锁时,容易出现测试准确度较低的问题。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本申请实施例提供一种数据库死锁的检测方法,包括:
获取可执行程序对应的目标程序的测试日志文件,其中,所述目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,所述目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和所述检测标识;所述测试日志文件为采用测试用例执行所述目标程序得到的日志文件;
对所述测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行所述预设业务功能的多个进程的日志文件;
从每个进程的日志文件中过滤出具有所述检测标识的日志记录,并生成所述每个进程的表执行顺序,所述表执行顺序中每个表信息为单次执行边界之间的表信息;
若所述多个进程的表执行顺序不一致,则确定所述可执行程序的所述预设业务功能存在数据库死锁。
可选的,若所述可执行程序具有多个业务功能,所述预设业务功能为所述多个业务功能中任一业务功能;
所述对所述测试日志文件中预设业务功能对应的日志文件进行进程分类之前,所述方法还包括:
对所述测试日志文件进行业务功能分类,得到所述多个业务功能对应的日志文件。
可选的,所述获取可执行程序对应的目标程序的测试日志文件之前,所述方法还包括:
根据预设的检索关键字遍历所述可执行程序的源码,以确定遍历到的源码行中是否存在所述检索关键字,所述检索关键字包括:表操作关键字和边界关键字;
确定所述可执行程序的源码中存在所述表操作关键字的源码行为所述第一目标代码行,并在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识;
确定所述可执行程序的源码中存在所述边界关键字的源码行确定为所述第二目标代码行,并在所述第二目标代码行标注所述第二目标代码行对应的执行边界信息和所述检测标识;
根据标注后的所述第一目标代码行、标注后的所述第二目标代码行,以及所述可执行程序的源码中不存在所述检索关键字的源码行,生成所述目标程序的源码。
可选的,所述在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识,包括:
根据预先获取的所述可执行程序的表对照顺序,在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识;所述表对照顺序为:所述可执行程序中目标源码行对应表信息的顺序。
可选的,所述目标源码行对应表信息为:所述目标源码行存在的表名,以及所述目标源码行存在的表名对应的表序号;
相应的,所述第一目标代码对应的表信息包括:所述第一目标代码行存在的表名,和所述第一目标代码行存在的表名对应的表序号。
可选的,所述根据预先获取的所述可执行程序的表对照顺序,在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识之前,所述方法还包括:
根据所述表操作关键字遍历所述可执行程序的源码,以确定遍历到的源码行中是否存在所述表操作关键字;
若遍历到的源码行中存在所述表操作关键字,则从存在所述表操作关键字的源码行中提取表名,得到表名文件;
根据所述遍历顺序,为所述更新后的表名文件中的每个表名分配一个自增的表序号,得到所述表对照顺序。
可选的,所述从存在所述表操作关键字的源码行中提取表名,包括:
根据所述可执行程序的源码的编码语言格式,按照预设的分隔符,从存在所述表操作关键字的源码行中提取表名。
可选的,所述方法还包括:
若所述多个进程的表执行顺序一致,则根据所述表执行顺序和所述表对照顺序,确定是否满足预设的修订条件;
若满足所述修订条件,则根据所述表执行顺序,对所述表对照顺序进行修订,以使得所述表执行顺序与所述表对照顺序一致。
可选的,所述根据所述表执行顺序和所述表对照顺序,确定是否满足预设的修订条件,包括:
若所述表执行顺序和所述表对照顺序的顺序不一致,且,所述多个进程对应的所述预设业务功能均执行通过,则确定满足所述修订条件。
可选的,所述方法还包括:
输出所述可执行程序的死锁检测结果,所述死锁检测结果包括:顺序不一致的表信息。
第二方面,本申请实施例提供一种数据库死锁的检测装置,包括:
获取模块,用于获取可执行程序对应的目标程序的测试日志文件,其中,所述目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,所述目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和所述检测标识;所述测试日志文件为采用测试用例执行所述目标程序得到的日志文件;
分类模块,用于对所述测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行所述预设业务功能的多个进程的日志文件;
生成模块,用于从每个进程的日志文件中过滤出具有所述检测标识的日志记录,并生成所述每个进程的表执行顺序,所述表执行顺序中每个表信息为单次执行边界之间的表信息;
确定模块,用于若所述多个进程的表执行顺序不一致,则确定所述可执行程序的所述预设业务功能存在数据库死锁。
可选的,若所述可执行程序具有多个业务功能,所述预设业务功能为所述多个业务功能中任一业务功能;
所述装置还包括:
第一分类模块,对所述测试日志文件进行业务功能分类,得到所述多个业务功能对应的日志文件。
可选的,所述装置还包括:
第一确定模块,用于根据预设的检索关键字遍历所述可执行程序的源码,以确定遍历到的源码行中是否存在所述检索关键字,所述检索关键字包括:表操作关键字和边界关键字;确定所述可执行程序的源码中存在所述表操作关键字的源码行为所述第一目标代码行,并在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识;确定所述可执行程序的源码中存在所述边界关键字的源码行确定为所述第二目标代码行,并在所述第二目标代码行标注所述第二目标代码行对应的执行边界信息和所述检测标识;
第一生成模块,用于根据标注后的所述第一目标代码行、标注后的所述第二目标代码行,以及所述可执行程序的源码中不存在所述检索关键字的源码行,生成所述目标程序的源码。
可选的,所述第一确定模块,还用于根据预先获取的所述可执行程序的表对照顺序,在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识;所述表对照顺序为:所述可执行程序中目标源码行对应表信息的顺序。
可选的,所述目标源码行对应表信息为:所述目标源码行存在的表名,以及所述目标源码行存在的表名对应的表序号;
相应的,所述第一目标代码对应的表信息包括:所述第一目标代码行存在的表名,和所述第一目标代码行存在的表名对应的表序号。
可选的,所述装置还包括:
第二确定模块,用于根据所述表操作关键字遍历所述可执行程序的源码,以确定遍历到的源码行中是否存在所述表操作关键字;
第一获取模块,用于若遍历到的源码行中存在所述表操作关键字,则从存在所述表操作关键字的源码行中提取表名,得到表名文件;根据所述遍历顺序,为所述更新后的表名文件中的每个表名分配一个自增的表序号,得到所述表对照顺序。
可选的,所述第一获取模块,还用于根据所述可执行程序的源码的编码语言格式,按照预设的分隔符,从存在所述表操作关键字的源码行中提取表名。
可选的,所述装置还包括:
第三确定模块,用于若所述多个进程的表执行顺序一致,则根据所述表执行顺序和所述表对照顺序,确定是否满足预设的修订条件;
修订模块,用于若满足所述修订条件,则根据所述表执行顺序,对所述表对照顺序进行修订,以使得所述表执行顺序与所述表对照顺序一致。
可选的,所述第三确定模块,还用于若所述表执行顺序和所述表对照顺序的顺序不一致,且,所述多个进程对应的所述预设业务功能均执行通过,则确定满足所述修订条件。
可选的,所述装置还包括:
输出模块,用于输出所述可执行程序的死锁检测结果,所述死锁检测结果包括:顺序不一致的表信息。
第三方面,本申请实施例提供一种测试终端,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的数据库死锁的检测方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面任一项所述的数据库死锁的检测方法。
综上所述,本发明实施例提供一种数据库死锁的检测方法,包括:获取可执行程序对应的目标程序的测试日志文件,其中,目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和检测标识;测试日志文件为采用测试用例执行目标程序得到的日志文件;对测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行预设业务功能的多个进程的日志文件;从每个进程的日志文件中过滤出具有检测标识的日志记录,并生成每个进程的表执行顺序,表执行顺序中每个表信息为单次执行边界之间的表信息;若多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。目标程序中预设标注有表信息、执行边界的信息、检测标识,执行目标程序得到的测试日志文件也具有表信息、执行边界的信息、检测标识;在执行边界的信息明确时,所确定的表信息、表执行顺序更加准确,因此,基于该表执行顺序进行死锁检测时,所获取的检测结果也更加准确。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种数据库死锁的检测系统的结构示意图;
图2为本发明实施例提供的一种数据库死锁的检测方法的流程示意图;
图3为本发明实施例提供的一种数据库死锁的检测方法的流程示意图;
图4为本发明实施例提供的一种数据库死锁的检测方法的流程示意图;
图5为本发明实施例提供的一种数据库死锁的检测方法的流程示意图;
图6为本发明实施例提供的一种数据库死锁的检测装置的结构示意图;
图7为本发明实施例提供的一种测试终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要说明的是,若出现术语“上”、“下”、等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
图1为本发明实施例提供的一种数据库死锁的检测系统的结构示意图,如图1所示,该数据库死锁的检测系统可以包括:测试终端101和测试服务器102。
其中,测试终端101和测试服务器102通信连接。测试终端101和测试服务器102直接的通信连接可以为有线通信连接,也可以为无线通信连接,本申请实施例对此不进行具体限制。
在一些实施方式中,测试终端101上可安装有第一批处理脚本,该第一批处理脚本可以为死锁检测脚本,该测试终端101可通过运行该第一批处理脚本,执行下述任一实施例所示的数据库死锁的检测方法中S101至S104的死锁检测的操作,实现对于可执行程序的数据库的死锁检测。
本申请实施例提供的一种数据库死锁的检测方法,其执行主体可以为测试终端,该测试终端可以为台式电脑,也可以为笔记本电脑或者平板电脑,还可以为其他类型的具备处理功能的设备,本申请实施例对此不进行具体限制。以下以测试终端为执行主体,对本申请实施例提供的数据库死锁的检测方法进行说明。
图2为本发明实施例提供的一种数据库死锁的检测方法的流程示意图,如图2所示,该方法可以包括:
S101、获取可执行程序对应的目标程序的测试日志文件。
其中,目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和检测标识。测试日志文件为采用测试用例执行目标程序得到的日志文件。例如,测试日志文件为测试服务器采用测试用例执行目标程序得到的日志文件。
在一种可能的实施方式中,为使得测试日志文件中,相应的表记录中存在检测标识、表信息或者执行边界信息,那么在执行该S101之前,测试服务器需先获取具有标注的目标程序。示例的,该目标程序可以是由测试终端上传至测试服务器。
测试终端可以在对可执行程序的源码进行标注之后,得到目标程序的源码,并将其存储至目标目录中。可在对可执行程序进行测试的情况下,测试终端从目标目录中查找,并将该目标程序上传至测试服务器,以在测试服务器启动该目标程序,并采用测试用例执行目标程序得到测试日志文件。其中,该测试用例可以为预先创建的该可执行程序对应的目标测试用例,或者,从预设的测试用例库中查找的目标测试用例。
在对可执行程序进行死锁检测的情况下,可由测试终端从测试服务器获取该测试日志文件。
可选的,测试终端上可以安装有第二批处理脚本,该第二批处理脚本可以为标记关键字的脚本,测试终端可通过运行该第二批处理脚本,对可执行程序中的源码行进行标注,得到目标程序的源码。
S102、对测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行预设业务功能的多个进程的日志文件。
其中,预设业务功能可以为可执行程序所具有的至少一个业务功能的任一。各预设业务功能具有对应的日志文件,各预设业务功能对应的日志文件也可以称为临时文件。另外,预设业务功能可能由多个进程执行。
在一种可能的实施方式中,测试终端上可以对预设业务功能对应的日志文件进行进程分类,实现了基于进程对日志文件的精选,通过进程分类,可得到预设业务功能的各个进程的日志文件。
S103、从每个进程的日志文件中过滤出具有检测标识的日志记录,并生成每个进程的表执行顺序。
其中,表执行顺序中每个表信息为单次执行边界之间的表信息。单次执行边界可以包括:一个表操作的起始边界和终止边界。表执行顺序可以称为修订表。
另外,检测标识可以包括:第一目标代码行中标注的检测标识、第二目标代码行中标注的检测标识。每个进程可以对应至少一个表,该至少一个表之间有执行顺序。
在一些实施方式中,测试终端可以将每个进程的日志文件作为最终文件,遍历每个进程的日志文件,得到每个进程对应的具有检测标识的日志记录,获取日志记录中包括有表序号的表信息,继而生成每个进程对应的表执行顺序。示例的,每个进程的日志文件中标注有执行边界,每个表信息为单次执行边界之间的一个表操作对应的表信息,每个表操作的执行边界明确,因此,获取的表信息也更加准确,生成的表执行顺序也更加准确。
S104、若多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。
在一种可能的实施方式中,测试终端可以对多个进程对应的表执行顺序进行比对,判断多个进程的表执行顺序是否一致,若不一致,则确定可执行程序的预设业务功能存在数据库死锁,实现对于数据库死锁的检测。
需要说明的是,多个进程的表执行顺序中,可以存在至少一个相同的表,在存在多个相同的表时,各进程中对于该多个相同的表的先后执行顺序一致,则说明多个进程的表执行顺序一致。
例如,预设业务功能包括第一进程和第二进程,第一进程的表执行顺序依次为:表A、表B、表C、表D;若第二进程的表执行顺序依次为表B、表C,则第一进程、第二进程的表执行顺序一致;若第二进程的表执行顺序依次为表C、表B,则第一进程和第二进程的表执行顺序不一致,则可执行程序的预设业务功能存在数据库死锁。
综上所述,本发明实施例提供一种数据库死锁的检测方法,包括:获取可执行程序对应的目标程序的测试日志文件,其中,目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和检测标识;测试日志文件为采用测试用例执行目标程序得到的日志文件;对测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行预设业务功能的多个进程的日志文件;从每个进程的日志文件中过滤出具有检测标识的日志记录,并生成每个进程的表执行顺序,表执行顺序中每个表信息为单次执行边界之间的表信息;若多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。目标程序中预设标注有表信息、执行边界的信息、检测标识,执行目标程序得到的测试日志文件也具有表信息、执行边界的信息、检测标识;在执行边界的信息明确时,所确定的表信息、表执行顺序更加准确,因此,基于该表执行顺序进行死锁检测时,所获取的检测结果也更加准确。
而且,在检测结果准确时,可以在测试阶段准确、及时的发现死锁问题,便于测试人员及时解决死锁问题。极大的减小了在使用阶段,发生死锁的可能性,使得在使用阶段对于数据库的处理效率更高。
可选的,若可执行程序具有多个业务功能,预设业务功能为多个业务功能中任一业务功能。
上述S102中对测试日志文件中预设业务功能对应的日志文件进行进程分类的过程之前,方法还包括:
对测试日志文件进行业务功能分类,得到多个业务功能对应的日志文件。
其中,测试日志文件可以为多个业务功能对应的日志文件。对测试日志文件进行业务功能分类可以为初次筛选,对于预设业务功能对应的日志文件进行进程分类可以为再次筛选,即精选。
需要说明的是,测试终端可以将测试日志文件,划分为多个日志文件,一个日志文件对应一个业务功能。
可选的,图3为本发明实施例提供的一种数据库死锁的检测方法的流程示意图,如图3所示,在上述S101中获取可执行程序对应的目标程序的测试日志文件的过程之前,该方法还可以包括:
S201、根据预设的检索关键字遍历可执行程序的源码,以确定遍历到的源码行中是否存在检索关键字。
其中,检索关键字可以包括:表操作关键字和边界关键字。在本申请实施例中,关键字可以基于可执行程序的编码语言确定,可以为一段更新SQL语句或者SQL更新的函数中包含的字符。
需要说明的是,边界关键字可以为程序或者事务单次执行的入口和出口函数中包含的字符。例如,入口函数可以为“ServiceIntial”、出口函数可以为“tpreturn”。
在一种可能的实施方式中,测试终端可以根据预设的检索关键字,逐行遍历可执行程序的源码,对于可执行程序的每行源码,可以判断该行源码中是否包含检索关键字。
S202、确定可执行程序的源码中存在表操作关键字的源码行为第一目标代码行,并在第一目标代码行标注第一目标代码行对应的表信息和检测标识。
其中,若可执行程序的一个源码行中存在表操作关键字,则可以确定该源码行为第一目标代码行。继而采用预设标价格式,对第一目标代码行标注对应的表信息和检测标识,得到标注后的第一目标代码行。标注的第一目标代码行对应的表信息和检测标识可以称为日志行。
另外,第一目标代码行对应的表信息可以包括:表名和表序号。即,测试终端可以在第一目标代码行上标注表名、表序号、检测标识。
S203、确定可执行程序的源码中存在边界关键字的源码行确定为第二目标代码行,并在第二目标代码行标注第二目标代码行对应的执行边界信息和检测标识。
其中,执行边界信息可以包括:服务名、边界序号。例如,边界入口分配的序号可以为0、出口序号可以为999。另外,标注的第二目标代码行对应的执行边界信息和检测标识可以称为日志行。
需要说明的是,若可执行程序的一个源码行中存在边界关键字,则可以确定该源码行为第二目标代码行。继而采用预设标记格式,对第二目标代码行标注对应的执行边界信息和检测标识,得到标注后的第二目标代码行。
例如,上述预设标记格式可以为“服务名/表名序号update-order”。其中,“update-order”为检测标识。当然,还可以采用其他标记格式进行标记,本申请实施例对此不进行具体限制。
S204、根据标注后的第一目标代码行、标注后的第二目标代码行,以及可执行程序的源码中不存在检索关键字的源码行,生成目标程序的源码。
其中,目标程序的源码可以为标记有检测标识的源码文件。
在本申请实施例中,对存在表操作关键字的源码行进行标注得到标注后的第一目标代码行,对存在边界关键字的源码行进行标注得到标注后的第二目标代码行。对于既不存在表操作关键字和边界关键字的源码行不进行标注处理,即为未标注源码行。标注后的第一目标代码行、标注后的第二目标代码行和未标注源码行可以生成目标程序的源码。
需要说明的是,测试终端可以通过运行上述第二批处理脚本,执行上述S201至S204的过程。
综上所述,根据标注后的第一目标代码行、标注后的第二目标代码行,以及可执行程序的源码中不存在检索关键字的源码行,生成目标程序的源码。可以实现高效、准确的生成目标程序的源码,继而可以便于实现准确的获取目标程序的测试日志文件。
可选的,上述S202中在第一目标代码行标注第一目标代码行对应的表信息和检测标识的过程,可以包括:
根据预先获取的可执行程序的表对照顺序,在第一目标代码行标注第一目标代码行对应的表信息和检测标识。
其中,表对照顺序可以为:可执行程序中目标源码行对应表信息的顺序。
可选的,目标源码行对应表信息为:目标源码行存在的表名,以及目标源码行存在的表名对应的表序号;相应的,第一目标代码对应的表信息包括:第一目标代码行存在的表名,和第一目标代码行存在的表名对应的表序号。
在本申请实施例中,表对照顺序可以称为对照表,该表对照顺序可以表征多个表名,以及表名对应的表序号。
在一种可能的实施方式中,表对照顺序中可以包括:多个目标源码行对应的表名和表顺序,测试终端可以确定第一目标代码对应的目标源码行,并将目标源码行对应的表名和表顺序,作为第一目标代码行对应的表信息。
需要说明的是,上述检测标识可以为能够被第一批处理脚本识别的关键字。
可选的,图4为本发明实施例提供的一种数据库死锁的检测方法的流程示意图,如图4所示,上述预先获取的可执行程序的表对照顺序,在第一目标代码行标注第一目标代码行对应的表信息和检测标识的过程之前,该方法还可以包括:
S301、根据表操作关键字遍历可执行程序的源码,以确定遍历到的源码行中是否存在表操作关键字。
其中,测试终端可以根据表操作关键字遍历可执行程序的各个源码行,判断每个源码行中是否存在表操作关键字。
需要说明的是:表操作关键字是唯一的,与可执行程序中其他代码不会重复。例如,PROC源码文件中,同时包含“EXEC”、“SQL”、“UPDATE”三个词的代码为PROC中执行更新语句。
S302、若遍历到的源码行中存在表操作关键字,则从存在表操作关键字的源码行中提取表名,得到表名文件。
在一种可能的实施方式中,若遍历到的源码行中存在表操作关键字,测试终端可以采用预设表明提取规则,从存在表操作关键字的源码行中提取表名,得到表名文件。
另外,若遍历到的源码行中不存在表操作关键字,则不对源码行进行提取表名的操作,可以继续遍历下一源码行。
S303、根据遍历顺序,为更新后的表名文件中的每个表名分配一个自增的表序号,得到表对照顺序。
其中,自增序号的范围可以为预设范围,例如,预设范围可以为1至998,其中,边界入口序号可以为0,边界出口序号可以为999。
在一些实施方式中,在得到表名文件之后,测试终端可以删除表名文件中重复的表名记录,得到去重后的表名,继而测试终端可以为去重后的每个表名分配一个自增的表序号,得到表对照顺序。
在本申请实施例中,表对照顺序表中可以包括多个表名,每个表名对应一个表序号,多个表名的表序号可以呈递增趋势。
在一种可能的实施方式中,测试终端上可以安装有第三批处理脚本,测试终端可以通过运行第三批处理脚本执行上述S301至S303的过程,得到表对照顺序。当然,测试终端还可以采用其他方式执行上述S301至S303的过程,本申请实施例对此不进行具体限制。
可选的,上述S302中从存在表操作关键字的源码行中提取表名的过程,可以包括:
根据可执行程序的源码的编码语言格式,按照预设的分隔符,从存在表操作关键字的源码行中提取表名。
在一些实施方式中,测试终端可以根据可执行程序的源码的编码语言格式,将存在表操作关键字的源码行中预设数量个分隔符后的字符,作为该源码行的表名。
例如,可执行程序可以为PROC源码文件,其中的一个源码行可以为:“EXEC SQLUPDATE表”预设数量可以为4,则预设数量分隔符后的字符可以为“表”,则可以将“表”作为该源码行的表名。
可选的,图5为本发明实施例提供的一种数据库死锁的检测方法的流程示意图,如图5所示,该方法还可以包括:
S401、若多个进程的表执行顺序一致,则根据表执行顺序和表对照顺序,确定是否满足预设的修订条件。
其中,一个预设业务功能的多个进程的表执行顺序一致时,说明当前表执行顺序中不存在死锁问题。
S402、若满足修订条件,则根据表执行顺序,对表对照顺序进行修订,以使得表执行顺序与表对照顺序一致。
需要说明的是,在当前表执行顺序中不存在死锁问题的情况下,但却满足修订条件时,可以根据表执行顺序,对表对照顺序进行修订,得到修订后的表对照顺序。
在本申请实施例中,测试终端在得到修订后的表对照顺序后,可以再次执行上述S201至S204的过程,以生成新的目标程序的源码,其中,在执行S202时,可以根据新的表对照顺序,在第一目标代码行标注第一目标代码行对应的表信息和检测标识。在获取到新的目标程序的源码后,测试终端可以基于新的目标程序的源码执行上述S101至S103的过程,以生成新的多个进程的表执行顺序,继而执行S104的过程,即若新的多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。
综上所述,若多个进程的表执行顺序一致,则根据表执行顺序和表对照顺序,确定是否满足预设的修订条件;若满足修订条件,则根据表执行顺序,对表对照顺序进行修订,以使得表执行顺序与表对照顺序一致。基于表执行顺序对表对照顺序进行修订,基于修订后的表对照顺序,可以获取新的表执行顺序,基于新的表执行顺序对数据库死锁进行再次检测,可以提高检测结果的准确性。
可选的,上述S401中根据表执行顺序和表对照顺序,确定是否满足预设的修订条件的过程,可以包括:
若表执行顺序和表对照顺序的顺序不一致,且,多个进程对应的预设业务功能均执行通过,则确定满足修订条件。
其中,多个进程对应的预设业务功能均执行通过,表示多个进程对应的预设业务功能均执行成功。
在一些实施方式中,若各个预设业务功能的表执行顺序,与表对照顺序的顺序均不一致,各个预设业务功能的多个进程均执行通过,且,各个预设业务功能的多个进程的表执行顺序一致,确定满足修订条件。
可选的,若表执行顺序不是按表序号递增的,而表对照顺序是按表序号递增的,则表执行顺序和表对照顺序的顺序不一致。
需要说明的是,若表执行顺序和表对照顺序的顺序一致,且,多个进程对应的预设业务功能均执行通过,则确定不满足修订条件。
可选的,该方法还可以包括:
输出可执行程序的死锁检测结果,死锁检测结果包括:顺序不一致的表信息。
需要说明的是,死锁检测结果包括:顺序不一致的表信息,以便可以确认出导致死锁的具体原因,有利于解决死锁问题。
在本申请实施例中,第一批处理脚本、第二批处理脚本、第三批处理脚本可以运行在测试终端上,测试终端上可以部署有WINDOWS系统。测试服务器可以采用测试用例执行目标程序得到测试日志文件。
综上所述,本发明实施例提供一种数据库死锁的检测方法,包括:获取可执行程序对应的目标程序的测试日志文件,其中,目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和检测标识;测试日志文件为采用测试用例执行目标程序得到的日志文件;对测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行预设业务功能的多个进程的日志文件;从每个进程的日志文件中过滤出具有检测标识的日志记录,并生成每个进程的表执行顺序,表执行顺序中每个表信息为单次执行边界之间的表信息;若多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。可以清晰的表示表执行顺序以及执行边界,并且可以准确、直观检测表执行顺序。
而且,基于表执行顺序对表对照顺序进行修订,基于修订后的表对照顺序,可以获取新的表执行顺序,基于新的表执行顺序对数据库死锁进行再次检测,可以提高检测结果的准确性。
图6为本发明实施例提供的一种数据库死锁的检测装置的结构示意图,如图6所示,该装置可以包括:
获取模块601,用于获取可执行程序对应的目标程序的测试日志文件,其中,目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和检测标识;测试日志文件为采用测试用例执行目标程序得到的日志文件;
分类模块602,用于对测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行预设业务功能的多个进程的日志文件;
生成模块603,用于从每个进程的日志文件中过滤出具有检测标识的日志记录,并生成每个进程的表执行顺序,表执行顺序中每个表信息为单次执行边界之间的表信息;
确定模块604,用于若多个进程的表执行顺序不一致,则确定可执行程序的预设业务功能存在数据库死锁。
可选的,若可执行程序具有多个业务功能,预设业务功能为多个业务功能中任一业务功能;
该装置还可以包括:
第一分类模块,用于对测试日志文件进行业务功能分类,得到多个业务功能对应的日志文件。
可选的,该装置还可以包括:
第一确定模块,用于根据预设的检索关键字遍历可执行程序的源码,以确定遍历到的源码行中是否存在检索关键字,检索关键字包括:表操作关键字和边界关键字;确定可执行程序的源码中存在表操作关键字的源码行为第一目标代码行,并在第一目标代码行标注第一目标代码行对应的表信息和检测标识;确定可执行程序的源码中存在边界关键字的源码行确定为第二目标代码行,并在第二目标代码行标注第二目标代码行对应的执行边界信息和检测标识;
第一生成模块,用于根据标注后的第一目标代码行、标注后的第二目标代码行,以及可执行程序的源码中不存在检索关键字的源码行,生成目标程序的源码。
可选的,第一确定模块,用于根据预先获取的可执行程序的表对照顺序,在第一目标代码行标注第一目标代码行对应的表信息和检测标识;表对照顺序为:可执行程序中目标源码行对应表信息的顺序。
可选的,目标源码行对应表信息为:目标源码行存在的表名,以及目标源码行存在的表名对应的表序号;
相应的,第一目标代码对应的表信息包括:第一目标代码行存在的表名,和第一目标代码行存在的表名对应的表序号。
可选的,该装置还可以包括:
第二确定模块,用于根据表操作关键字遍历可执行程序的源码,以确定遍历到的源码行中是否存在表操作关键字;
第一获取模块,用于若遍历到的源码行中存在表操作关键字,则从存在表操作关键字的源码行中提取表名,得到表名文件;根据遍历顺序,为更新后的表名文件中的每个表名分配一个自增的表序号,得到表对照顺序。
可选的,第一获取模块,用于根据可执行程序的源码的编码语言格式,按照预设的分隔符,从存在表操作关键字的源码行中提取表名。
可选的,装置还包括:
第三确定模块,用于若多个进程的表执行顺序一致,则根据表执行顺序和表对照顺序,确定是否满足预设的修订条件;
修订模块,用于若满足修订条件,则根据表执行顺序,对表对照顺序进行修订,以使得表执行顺序与表对照顺序一致。
可选的,第三确定模块,还用于若表执行顺序和表对照顺序的顺序不一致,且,多个进程对应的预设业务功能均执行通过,则确定满足修订条件。
可选的,装置还包括:
输出模块,用于输出可执行程序的死锁检测结果,死锁检测结果包括:顺序不一致的表信息。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图7为本发明实施例提供的一种测试终端的结构示意图,该测试终端包括:处理器701、存储器702。
存储器702用于存储程序,处理器701调用存储器702存储的程序,以执行上述图2至图5所述的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述图2至图5所述的方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据库死锁的检测方法,其特征在于,包括:
获取可执行程序对应的目标程序的测试日志文件,其中,所述目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,所述目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和所述检测标识;所述测试日志文件为采用测试用例执行所述目标程序得到的日志文件;
对所述测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行所述预设业务功能的多个进程的日志文件;
从每个进程的日志文件中过滤出具有所述检测标识的日志记录,并生成所述每个进程的表执行顺序,所述表执行顺序中每个表信息为单次执行边界之间的表信息;
若所述多个进程的表执行顺序不一致,则确定所述可执行程序的所述预设业务功能存在数据库死锁。
2.根据权利要求1所述的检测方法,其特征在于,若所述可执行程序具有多个业务功能,所述预设业务功能为所述多个业务功能中任一业务功能;
所述对所述测试日志文件中预设业务功能对应的日志文件进行进程分类之前,所述方法还包括:
对所述测试日志文件进行业务功能分类,得到所述多个业务功能对应的日志文件。
3.根据权利要求1所述的检测方法,其特征在于,所述获取可执行程序对应的目标程序的测试日志文件之前,所述方法还包括:
根据预设的检索关键字遍历所述可执行程序的源码,以确定遍历到的源码行中是否存在所述检索关键字,所述检索关键字包括:表操作关键字和边界关键字;
确定所述可执行程序的源码中存在所述表操作关键字的源码行为所述第一目标代码行,并在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识;
确定所述可执行程序的源码中存在所述边界关键字的源码行确定为所述第二目标代码行,并在所述第二目标代码行标注所述第二目标代码行对应的执行边界信息和所述检测标识;
根据标注后的所述第一目标代码行、标注后的所述第二目标代码行,以及所述可执行程序的源码中不存在所述检索关键字的源码行,生成所述目标程序的源码。
4.根据权利要求3所述的检测方法,其特征在于,所述在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识,包括:
根据预先获取的所述可执行程序的表对照顺序,在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识;所述表对照顺序为:所述可执行程序中目标源码行对应表信息的顺序。
5.根据权利要求4所述的检测方法,其特征在于,所述目标源码行对应表信息为:所述目标源码行存在的表名,以及所述目标源码行存在的表名对应的表序号;
相应的,所述第一目标代码对应的表信息包括:所述第一目标代码行存在的表名,和所述第一目标代码行存在的表名对应的表序号。
6.根据权利要求5所述的检测方法,其特征在于,所述根据预先获取的所述可执行程序的表对照顺序,在所述第一目标代码行标注所述第一目标代码行对应的表信息和所述检测标识之前,所述方法还包括:
根据所述表操作关键字遍历所述可执行程序的源码,以确定遍历到的源码行中是否存在所述表操作关键字;
若遍历到的源码行中存在所述表操作关键字,则从存在所述表操作关键字的源码行中提取表名,得到表名文件;
根据遍历顺序,为更新后的表名文件中的每个表名分配一个自增的表序号,得到所述表对照顺序。
7.根据权利要求6所述的检测方法,其特征在于,所述从存在所述表操作关键字的源码行中提取表名,包括:
根据所述可执行程序的源码的编码语言格式,按照预设的分隔符,从存在所述表操作关键字的源码行中提取表名。
8.根据权利要求4所述的检测方法,其特征在于,所述方法还包括:
若所述多个进程的表执行顺序一致,则根据所述表执行顺序和所述表对照顺序,确定是否满足预设的修订条件;
若满足所述修订条件,则根据所述表执行顺序,对所述表对照顺序进行修订,以使得所述表执行顺序与所述表对照顺序一致。
9.根据权利要求8所述的检测方法,其特征在于,所述根据所述表执行顺序和所述表对照顺序,确定是否满足预设的修订条件,包括:
若所述表执行顺序和所述表对照顺序的顺序不一致,且,所述多个进程对应的所述预设业务功能均执行通过,则确定满足所述修订条件。
10.根据权利要求1-9中任一所述的检测方法,其特征在于,所述方法还包括:
输出所述可执行程序的死锁检测结果,所述死锁检测结果包括:顺序不一致的表信息。
11.一种数据库死锁的检测装置,其特征在于,包括:
获取模块,用于获取可执行程序对应的目标程序的测试日志文件,其中,所述目标程序的源码中具有表操作的第一目标代码行预先标注有表信息以及检测标识,所述目标程序的源码中具有表操作的执行边界的第二目标代码行预先标注有执行边界的信息和所述检测标识;所述测试日志文件为采用测试用例执行所述目标程序得到的日志文件;
分类模块,用于对所述测试日志文件中预设业务功能对应的日志文件进行进程分类,得到执行所述预设业务功能的多个进程的日志文件;
生成模块,用于从每个进程的日志文件中过滤出具有所述检测标识的日志记录,并生成所述每个进程的表执行顺序,所述表执行顺序中每个表信息为单次执行边界之间的表信息;
确定模块,用于若所述多个进程的表执行顺序不一致,则确定所述可执行程序的所述预设业务功能存在数据库死锁。
12.一种测试终端,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-10任一项所述的数据库死锁的检测方法。
13.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-10任一项所述的数据库死锁的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011569979.6A CN112559195B (zh) | 2020-12-25 | 2020-12-25 | 数据库死锁的检测方法、装置、测试终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011569979.6A CN112559195B (zh) | 2020-12-25 | 2020-12-25 | 数据库死锁的检测方法、装置、测试终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559195A true CN112559195A (zh) | 2021-03-26 |
CN112559195B CN112559195B (zh) | 2021-12-21 |
Family
ID=75033252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011569979.6A Active CN112559195B (zh) | 2020-12-25 | 2020-12-25 | 数据库死锁的检测方法、装置、测试终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559195B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101081A1 (en) * | 2004-11-01 | 2006-05-11 | Sybase, Inc. | Distributed Database System Providing Data and Space Management Methodology |
CN1799048A (zh) * | 2003-04-23 | 2006-07-05 | 瑟顿爱知有限公司 | 通用数据库模式 |
CN101425070A (zh) * | 2008-08-11 | 2009-05-06 | 深圳市金蝶中间件有限公司 | 一种死锁定位的方法、死锁定位装置和数据系统 |
CN103455368A (zh) * | 2013-08-27 | 2013-12-18 | 华为技术有限公司 | 一种死锁检测方法、节点及系统 |
CN103761182A (zh) * | 2013-12-26 | 2014-04-30 | 上海华为技术有限公司 | 一种死锁检测方法及装置 |
CN105426234A (zh) * | 2015-10-30 | 2016-03-23 | 小米科技有限责任公司 | 数据库死锁检测方法及装置 |
US20160371319A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Synchronization on reactivation of asynchronous table replication |
CN109460349A (zh) * | 2018-09-19 | 2019-03-12 | 武汉达梦数据库有限公司 | 一种基于日志的测试用例生成方法和装置 |
-
2020
- 2020-12-25 CN CN202011569979.6A patent/CN112559195B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1799048A (zh) * | 2003-04-23 | 2006-07-05 | 瑟顿爱知有限公司 | 通用数据库模式 |
US20060101081A1 (en) * | 2004-11-01 | 2006-05-11 | Sybase, Inc. | Distributed Database System Providing Data and Space Management Methodology |
CN101425070A (zh) * | 2008-08-11 | 2009-05-06 | 深圳市金蝶中间件有限公司 | 一种死锁定位的方法、死锁定位装置和数据系统 |
CN103455368A (zh) * | 2013-08-27 | 2013-12-18 | 华为技术有限公司 | 一种死锁检测方法、节点及系统 |
CN103761182A (zh) * | 2013-12-26 | 2014-04-30 | 上海华为技术有限公司 | 一种死锁检测方法及装置 |
US20160371319A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Synchronization on reactivation of asynchronous table replication |
CN105426234A (zh) * | 2015-10-30 | 2016-03-23 | 小米科技有限责任公司 | 数据库死锁检测方法及装置 |
CN109460349A (zh) * | 2018-09-19 | 2019-03-12 | 武汉达梦数据库有限公司 | 一种基于日志的测试用例生成方法和装置 |
Non-Patent Citations (3)
Title |
---|
B. M. MONJURUL ALOM 等: "Optimization of Detected Deadlock Views of Distributed Database", 《PROCEEDINGS OF THE 2010 INTERNATIONAL CONFERENCE ON DATA STORAGE AND DATA ENGINEERING》 * |
B.M. MONJURUL ALOM 等: "Deadlock Detection Views of Distributed Database", 《2009 SIXTH INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY: NEW GENERATIONS》 * |
陈滨 等: "基于PostgreSQL的并行分布式数据库环境下的死锁检测和恢复", 《第九届计算机科学与技术研究生学术讨论会论文集》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559195B (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112307124B (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN111143370B (zh) | 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质 | |
CN110389941B (zh) | 数据库校验方法、装置、设备及存储介质 | |
CN114398069B (zh) | 一种基于交叉指纹分析的公共组件库精确版本识别方法及系统 | |
CN111127068A (zh) | 一种工程量清单自动组价方法和装置 | |
CN117873905B (zh) | 一种代码同源检测的方法、装置、设备及介质 | |
US20120078925A1 (en) | Searching within log files | |
CN112559195B (zh) | 数据库死锁的检测方法、装置、测试终端及介质 | |
CN110647452B (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN112241262A (zh) | 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 | |
KR20180077397A (ko) | 소프트웨어 프로젝트 관계도 구성 시스템 및 그 방법 | |
CN115346607B (zh) | Dna样本查重方法及装置 | |
CN111143483A (zh) | 确定数据表关系的方法、设备和计算机可读存储介质 | |
CN115033592A (zh) | 基于数据库的sql语句处理方法、装置、设备及存储介质 | |
CN112069006B (zh) | 一种检测分析gpu速率状态的方法、装置及计算机可读介质 | |
CN114090673A (zh) | 一种多数据源的数据处理方法、设备及存储介质 | |
EP4006743A1 (en) | Information search system | |
CN114220113A (zh) | 一种论文质量检测方法、装置和设备 | |
CN113434413A (zh) | 基于数据差异的数据测试方法、装置、设备及存储介质 | |
CN114564472B (zh) | 元数据扩充方法以及存储介质、电子设备 | |
CN117909392B (zh) | 一种智能化数据资产盘点的方法和系统 | |
CN112925856B (zh) | 实体关系分析方法、装置、分析设备及计算机存储介质 | |
CN109271392B (zh) | 快速判别和抽取关系型数据库实体及属性的方法及设备 | |
CN109783131B (zh) | 获取版本功能差异的方法、装置、设备及存储介质 | |
CN114090457A (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 |