CN108255704B - 一种脚本调用事件的异常响应方法及其终端 - Google Patents
一种脚本调用事件的异常响应方法及其终端 Download PDFInfo
- Publication number
- CN108255704B CN108255704B CN201711085988.6A CN201711085988A CN108255704B CN 108255704 B CN108255704 B CN 108255704B CN 201711085988 A CN201711085988 A CN 201711085988A CN 108255704 B CN108255704 B CN 108255704B
- Authority
- CN
- China
- Prior art keywords
- script
- sql
- query
- query factor
- calling
- 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
Images
Classifications
-
- 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/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- 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/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- 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/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于数据库技术领域,提供了一种脚本调用事件的异常响应方法及其终端,包括:以预设的时间间隔获取脚本调用事件当前的完成进度;若完成进度小于预设的进度范围的下限值,获取所述异常调用进程包含的各个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脚本的运行状态参数;
将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度;其中,所述脚本调用事件具体用于:数据库根据所述脚本调用事件中包含的多个调用进程对应的启动序号,依次运行各个所述调用进程;
若所述完成进度小于预设的进度范围的下限值,则识别当前运行的调用进程为异常调用进程;
获取所述异常调用进程包含的各个SQL脚本的运行状态参数;
将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
实施本发明实施例提供的一种脚本调用事件的异常响应方法及其终端具有以下有益效果:
本发明实施例通过在启动了脚本调用事件后,以预设的时间间隔获取该脚本调用时间的完成进度,将该完成进度与预设的进度范围进行匹配,确定当前的进度是否落后于正常的进度,若是,则表示该脚本调用事件存在异常情况,从而到时进度较慢,因此识别当前执行的调用进程为异常调用进程,并执行异常响应操作。获取该异常调用进程中各个SQL脚本的运行状态参数,以便定位造成脚本调用事件异常的SQL脚本;根据各个SQL脚本的运行状态参数计算对应的消耗特征值,并将该消耗特征值与预设的消耗阈值进行比较,确定故障SQL脚本;获取故障SQL脚本对应的查询因子序列,继而对该查询因子序列进行调整,以修复故障SQL脚本,从而保障了脚本调用事件能够正常运行。与现有的脚本调用事件的异常响应技术相比,本发明实施例可以定期检测脚本调用事件的完成进度是否与预设的进度一致,从而发现脚本调用事件的异常情况,提高了异常情况的发现速率以及异常响应的效率。另一方面,也可以定位造成调用事件异常的脚本范围,只需对该异常调用进程中的SQL脚本进行检测,减少了需要进行异常检测的脚本数,也能加快异常修复的速率,并且整个修复过程均由终端设备完成,无需维护人员进行操作,也进一步提高了异常响应效率以及数据库的维护成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种脚本调用事件的异常响应方法的实现流程图;
图2是本发明第二实施例提供的一种脚本调用事件的异常响应方法S107的具体实现流程图;
图3是本发明第三实施例提供的一种脚本调用事件的异常响应方法的具体实现流程图;
图4是本发明第四实施例提供的一种脚本调用事件的异常响应方法S104的具体实现流程图;
图5是本发明第五实施例提供的一种脚本调用事件的异常响应方法的具体实现流程图;
图6是本发明一实施例提供的一种脚本调用事件的异常响应终端的结构框图;
图7是本发明一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过在启动了脚本调用事件后,终端设备以预设的时间间隔获取该脚本调用时间的完成进度,将该完成进度与预设的进度范围进行匹配,确定当前的进度是否落后于正常的进度,若是,则表示该脚本调用事件存在异常情况,从而到时进度较慢,因此识别当前执行的调用进程为异常调用进程,并执行异常响应操作。终端设备获取该异常调用进程中各个SQL脚本的运行状态参数,以便定位造成脚本调用事件异常的SQL脚本;终端设备根据各个SQL脚本的运行状态参数计算对应的消耗特征值,并将该消耗特征值与预设的消耗阈值进行比较,确定故障SQL脚本;获取故障SQL脚本对应的查询因子序列,继而对该查询因子序列进行调整,以修复故障SQL脚本,从而保障了脚本调用事件能够正常运行,解决了现有的脚本调用事件的异常响应技术,当脚本调用事件出现异常情况时,需要用户一一对该脚本调用事件进行手动异常排查,定位故障SQL脚本,但由于脚本调用事件中包含大量的SQL脚本,一个脚本调用事件中甚至可能包含成千上万个SQL脚本,用户需要从如此数量庞大的脚本中找出异常的脚本,则需要花费大量时间,异常响应效率较低。另一方面,当脚本调用时间出现异常时,常常需要多个有经验的SQL脚本专家联合对异常情况进行修复,不仅依赖维护人员的专业知识进也提高了数据库的维护成本的问题。
在本发明实施例中,流程的执行主体为脚本调用事件的异常响应终端,终端设备包括手机、计算机设备、平板电脑、服务器等终端,特别地,该终端设备具体为一布放于数据库***中的脚本调用事件的异常响应终端,监测脚本调用事件的运行情况,并对脚本调用事件进行故障修复以及维护操作。图1示出了本发明第一实施例提供的脚本调用事件的异常响应方法的实现流程图,详述如下:
在S101中,在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度;其中,所述脚本调用事件具体用于:数据库根据所述脚本调用事件中包含的多个调用进程对应的启动序号,依次运行各个所述调用进程。
在本实施例中,终端设备可通过接收用户终端发送的脚本调用事件启动请求或者用户在终端设备上输入的启动指令,来确定启动时机;终端设备也可以通过监测当前时刻是否满足预设的启动触发条件,来判定是否需要执行脚本调用事件。例如某一调用脚本事件为统计一个月整体的营业销售情况,则终端设备在检测到到达该月最后一天的23点59分59秒时,则启动该脚本调用事件,从而统计当月的营销销售情况。
在本实施例中,脚本调用事件由多个调用进程有序排列构成,该脚本调用事件中包含多个调用进程,每个调用进程具有对应的启动序号,数据库在运行该脚本调用事件时,则根据各个调用进程对应的启动序号,依次运行各个调用进程。需要说明的是,各个调用进程中包含多个SQL脚本,相同的调用进程中的SQL脚本可同时运行,也可以根据该调用进程预设的启动顺序依次运行各个SQL脚本,在此不作限定。
在本实施例中,终端设备在确认脚本调用事件已经被启动后,将记录开启时间,并进行计时操作,当到达计时的数值到达预设的时间间隔,则执行S102的相关操作。
在本实施例中,终端设备将以预设的时间间隔获取该脚本调用事件当前的完成进度,并将该当前的完成进度与预设的进度范围进行比对,确定当前的进度是否处于正常范围内。具体地,该预设的进度范围与获取的时间节点一一对应。终端设备首先确定本次采集的序号,查询该序号对应的时间节点,继而通过该时间节点确定对应的进度范围,最后将本次获取得到的脚本调用时间与预设的进度范围进行比对。
可选地,在本实施例中,若数据库完成一个调用进程,则会根据该调用进程的完成时间,调整后续采集时间节点对应的进度范围。例如,某一调用进程比预计完成时间提前了10分钟,此时,终端设备将会把后续各个时间节点对应的进度范围向后推移相应的调整系数,例如预计10分钟可以完成总进度的2%,则将各个进度范围的上限值以及下限值均加2%,以此类推。
在本实施例中,终端设备若判定当前的完成进度在预设的进度范围内,则表示当前的调用进程正常运行,脚本调用事件并不存在异常情况,终端设备识别当前状态为无异常,等待下一次采集时机的到达;若判定当前的完成进度在预设的进度范围外,则表示当前的调用进程处于非正常运行,可能脚本调用时间存在异常情况,特别地,当完成进度小于该进度范围的下限值,则执行S103的相关操作,以便确定造成该异常情况的具体成因,并进行修复。
可选地,在本实施例中,若终端设备确定当前完成进度大于预设的进度范围的上限值,则表示当前调用进程超前完成,而造成该情况的原因可能是由于调用进程中部分SQL脚本被忽略而没有运行,也可能是由于该调用进程在进程脚本封装的过程中,并未将所有SQL脚本进行打包。因此,终端设备将分别确定调用进程是否存在上述两种情况,继而进行对应的异常超前响应操作。
在S102中,若所述完成进度小于预设的进度范围的下限值,则识别当前运行的调用进程为异常调用进程。
在本实施例中,终端设备若判定当前完成进度小于预设的进度范围下限,则表示数据库在运行脚本调用事件时,执行当前调用进程的过程中出现异常情况,从而使得导致整体的进度落后于预设的进度范围,例如调用进程进行死循环或部分SQL脚本运行时延时较大,从而运行该调用进程时需要耗费较多的时间。因此,终端设备将识别当前运行的调用进程为异常调用进程。
可选地,在本实施例中,异常调用进程中包含多个SQL脚本,调用进程并非同时启动多个SQL脚本,因此,终端设备在判定某一调用进程为异常调用进程时,将提取该异常调用进程中已启动的SQL脚本执行S103的相关操作。由于并未执行的SQL脚本并不会导致该调用进程异常,因此无需获取未执行SQL脚本的运作状态参数,从而减少了异常检测的脚本数,提高了异常响应的效率。
在S103中,获取所述异常调用进程包含的各个SQL脚本的运行状态参数。
在本实施例中,终端设备在确定当前运行的调用进程为异常调用进程时,将获取该异常调用进程中各个SQL脚本的运行状态参数,特别地,该SQL脚本的运行状态参数中包含多个参数项,每个参数项对应一个参数值,分别表征不同的运行特征。其中,该SQL脚本的运作状态参数包括但不限于:运算资源占用参数、平均运行时间参数、内容占用参数以及调用次数。运行资源占用参数具体为调用该SQL脚本时,执行一次查询流程,所需消耗的运算资源,可选地,该运行资源占用参数可用CPU的平均占用个数来表示。
在S104中,将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况。
在本实施例中,终端设备在获取了各个SQL脚本的运行状态参数后,将根据各个运行状态参数获取SQL脚本的消耗情况,因此将SQL脚本对应的运行状态参数,导入到预设的消耗特征转换模型中,以通过运行状态参数计算其对应的消耗特征值,通过该消耗特征值表征该SQL脚本的消耗情况。
可选地,在本实施例中,该消耗特征转换模型可以为一哈希函数,终端设备将所述SQL脚本的运作状态参数输入到该哈希函数中,继而根据各个运行状态参所在的参数范围,得到消耗特征值。
可选地,在本实施例中,该消耗特征值具体为一消耗等级。在该情况下,终端设备除了获取用户当前SQL脚本的运行状态参数外,还获取该SQL脚本的平均运行状态参数,将当前的运行状态参数与平均状态参数进行比对,确定当前的消耗等级。该消耗等级包括但不限于:“远低于平均消耗”、“低于平均消耗”、“维持正常水平”、“高于平均消耗”以及“远高于平均消耗”,用户通过终端设备显示的消耗等级,直观获知各个SQL脚本的消耗情况,提高了用户的信息获取效率。
在S105中,识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序。
在本实施例中,终端设备在计算了各个SQL脚本对应的消耗特征值后,将各个消耗特征值与预设的消耗阈值进行比对,若某一SQL脚本对应的消耗特征值小于或等于预设的消耗阈值,则表示该SQL脚本的消耗情况处于正常状态,识别该SQL脚本为正常SQL脚本;反之,若某一SQL脚本对应的消耗特征值大于预设的消耗阈值,则表示该SQL脚本的消耗情况已超出正常范围,处于异常消耗的SQL脚本,因此将是被该SQL脚本为故障SQL脚本。终端设备将从SQL脚本资源库中,将本次检测判定的故障SQL脚本提取出来,对其进行故障修复。
可选地,在本实施例中,终端设备记录有各个SQL脚本对应的消耗阈值。在该情况下,终端设备首先获取该SQL脚本对应的脚本标识,并根据该脚本标识确定其对应的消耗阈值,并将该SQL脚本的消耗特征值与其对应的消耗阈值进行比对,确定该SQL脚本是否为故障SQL脚本。其中,该消耗阈值具体为各个SQL脚本的历史消耗记录的平均消耗特征值。
在本实施例中,SQL脚本包含查询因子序列,该查询因子序列由以一定顺序排列的多个查询因子构成。数据库在调用该SQL脚本时,将根据该查询因子序列中各个查询因子的次序,依次选取与查询因子的参数值对应的数据。
例如,序号为1的第一查询因子具体为“地区”,该查询因子在某次查询的过程中,对应的参数值为“深圳”,而序号为2的第二查询因子具体为“性别”,在该次查询的过程中,对应的参数值为“女”。因此,数据库在调用该SQL脚本时,首先会将本次查询各个查询因子对应的参数值,导入到该SQL脚本中,并从数据库中依次选取与上述查询因子均匹配的数据。首先,数据库将查询包含“深圳”这一参数的数据,得到第一查询结果;并从第一查询结果中,选取性别为“女”的数据,得到第二查询结果,通过上述过程依次迭代,继而得到最后的查询结果,完成一次完整的查询操作。
因此可以看出,由于得到第一查询结果时,数据库需要遍历全部数据得到第一查询结果,而第二次查询操作时,则从第一查询结果中再次选取对应的数据。因此,若第一查询因子的数据筛选效率较低,则第一查询结果中包含的数据量较大,数据库服务器需要将较多的缓存来存储该第一查询结果,并且第二查询因子在进行数据选取时,其对应的数据基数量也较大,因此会导致运行消耗较大,因此虽然SQL脚本中包含的查询因子是固定的,但不同的排布将直接影响SQL脚本的运行效率,即对故障SQL脚本的修复,本质上是对SQL脚本中的排序因子序列进行排序优化修复。
在S106中,根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数。
在本实施例中,终端设备将根据该查询因子序列中包含的各个查询因子,确定数据库中每个数据中该查询因子所取的参数值,继而确定该查询因子在数据库中包含多少个不同的参数值,得到对应的参数值个数。
例如,某一查询因子为“地区”,在数据库中,某部分数据“地区”所取的值为“广州”,某部分数据“地区”所取的值为“深圳”,某部分数据“地区”所取的值为“香港”,剩余部分数据“地区”所取的值为“澳门”,因此,该“地区”查询因子在数据库中包含4个不同的参数值,即其对应的参数值个数为4。而对于查询因子为“性别”,则可以确定其对应的参数值个数为2,即取值为“男”或取值为“女”。因此可见,参数值个数越大的查询因子,其对应的数据筛选效率则越高,还是利用上述的例子,“地区”查询因子可以从数据库中平均筛选出四分之一的数据,而“性别”查询因子则只可以从数据库中筛选出二分之一的数据。由此可以看出,参数值个数越大的查询因子,其数据筛选的效率越高。
在S107中,基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
在本实施例中,终端设备将根据各个查询因子对应的参数值个数大小,有小到大依次对查询因子进行排列,得到标准的查询因子序列,并将该标准的查询因子序列作为该SQL脚本的查询因子序列,从而修复该故障的SQL脚本,提高其查询效率。
以上可以看出,本发明实施例提供的一种脚本调用事件的异常响应方法通过在启动了脚本调用事件后,终端设备以预设的时间间隔获取该脚本调用时间的完成进度,将该完成进度与预设的进度范围进行匹配,确定当前的进度是否落后于正常的进度,若是,则表示该脚本调用事件存在异常情况,从而到时进度较慢,因此识别当前执行的调用进程为异常调用进程,并执行异常响应操作。终端设备获取该异常调用进程中各个SQL脚本的运行状态参数,以便定位造成脚本调用事件异常的SQL脚本;终端设备根据各个SQL脚本的运行状态参数计算对应的消耗特征值,并将该消耗特征值与预设的消耗阈值进行比较,确定故障SQL脚本;获取故障SQL脚本对应的查询因子序列,继而对该查询因子序列进行调整,以修复故障SQL脚本,从而保障了脚本调用事件能够正常运行。与现有的脚本调用事件的异常响应技术相比,本发明实施例可以定期检测脚本调用事件的完成进度是否与预设的进度一致,从而发现脚本调用事件的异常情况,提高了异常情况的发现速率以及异常响应的效率。另一方面,也可以定位造成调用事件异常的脚本范围,只需对该异常调用进程中的SQL脚本进行检测,减少了需要进行异常检测的脚本数,也能加快异常修复的速率,并且整个修复过程均由终端设备完成,无需维护人员进行操作,也进一步提高了异常响应效率以及数据库的维护成本。
图2示出了本发明第二实施例提供的一种脚本调用事件的异常响应方法S107的具体实现流程图。参见图2所示,相对于图1所述实施例,本实施例提供的一种脚本调用事件的异常响应方法中S107还包括S201以及S204,具体详述如下:
进一步地,所述基于各个所述查询因子的参数值个数,调整所述查询因子序列,以修复所述故障SQL脚本,包括
在S201中,获取所述查询因子在所述数据库中的数据覆盖率。
在本实施例中,由于每个查询因子的搜索效率,除了与该查询因子的参数值个数的相关联之外,还与该查询因子的在数据中的覆盖率有关,即相当于判断数据是否包含该查询因子,已经对一部分的数据进行了筛选,因此为了提高区分度的准确性,除了确定各个查询因子所对应的参数值个数外,还获取该查询因子在数据库中数据的覆盖率。
具体地,在本实施例中,根据统计该数据库中包含该查询因子的数据量以及该数据库中包含的数据总量,确定该查询因子对应的数据覆盖率,即数据覆盖率具体的计算公式为:
其中,所述f(x)为所述查询因子的数据覆盖率,所述f总为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
在S202中,将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f总为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
在本实施例中,由于查询因子在数据库中的数据覆盖率越大,则表示包含该查询因子的数据越多,因此筛选出来的数据量也越大,从而查询的效率越低。因此,查询因子的区分度与其数据覆盖率成反比。特别地,该数据覆盖率为小于1的正数。对于数据库中任一数据均不包含某一查询因子,其对应的区分度为0。
在本实施例中,终端设备将获取得到的各个查询因子的参数值个数以及数据覆盖率,导入至该区分度计算模型中,计算得到各个查询因子的区分度。
在S203中,基于各个查询因子对应的区分度的数值,由大至小依次排列各个所述查询因子,生成标准查询因子序列。
在本实施例中,终端设备在获取了各个查询因子对应的区分度后,则根据各个区分度的数值大小,由大至小依次排列,既然生成标准查询因子序列。其中,区分度较大的查询因子,其序号越前,反之,区分度较小的查询因子,其序号越后。
可选地,若两个或以上的查询因子,其对应的区分度数值大小相同,则上述查询因子之间的相对位置可任意排列,例如查询因子A到F对应的区分度分别为:8、12、8、5、8、6,则调整后的标准查询因子序列可以为:BACEFD、BAECFD或者BECAFD,只要AEC三个查询因子均排在B之后、FD之前即可。终端设备还可以根据区分度相同的查询因子其参数值个数的大小,设置上述查询因子之间的排列顺序。依然通过上述例子进行说明,查询因子ACE其对应的区分度均为8,但A的参数值个数为7,C的参数值个数为9,而E的参数值个数为6,则上述三者之间的相对排序可以为:CAE。
在S204中,将所述故障SQL脚本中的查询因子序列替换为所述标准查询因子序列。
在本实施例中,由于故障SQL脚本中查询因子的排布不合理,从而导致数据库调用该SQL脚本时,发生消耗异常的情况,因此,需要将该查询因子序列中各个查询因子的排布调整至与标准查询因子序列的排布一致,即将标准查询因子序列替换为故障SQL脚本的查询因子序列。
在本实施例中,若故障SQL脚本的查询因子序列中某些查询因子固定了对应的参数值,则终端设备在替换成功后,将各个查询因子对应的固定参数值配置至标准查询因子序列中,以保持修复后的SQL脚本的查询策略一致。
在本发明实施例中,通过获取各个查询因子对应的覆盖率,并基于覆盖率以及参数值个数确定各个查询因子对应的区分度,从而更准确表征查询因子的数据筛选效率,继而提高了标准查询因子序列的搜索效率以及异常修复的准确率。
图3了本发明第三实施例提供的一种脚本调用事件的异常响应方法的具体实现流程图。参见图3所示,相对于图1所述实施例,本实施例提供的一种脚本调用事件的异常响应方法中,在S102包括S3022,所述S107之后还包括S308,具体详述如下:
在本实施例中,由于S301与图1实施例中的S101实现方式完全相同,S3021与图1实施例中的S102实现方式完全相同,S303~S307与图1实施例中S103~S107的实现方式完全相同,具体阐述可参见S101~S107,在此不再赘述。
进一步地,所述若所述当前完成进度小于所述进度范围的下限值,则识别当前运行的调用进程为异常调用进程,包括:
在S3022中,暂停运行所述脚本调用事件,并存储当前的运行环境参数。
在本实施例中,终端设备在判定脚本调用事件中存在异常情况时,为了避免继续执行异常的调用进程从而导致异常情况加剧,以及浪费不必要的运算资源,终端设备将暂停运行该脚本调用事件,并存储当前的运行环境参数。具体地,该存储当前的运行环境参数具体为:终端设备将挂起运行该脚本调用事件的线程,并记录已生成的运行结果。由于线程被挂起,则表示该线程虽然暂停,但依然被该脚本调用事件占用,并不运行其他进程,从而保存了该脚本调用事件的运行环境参数。
在本实施例中,该运行环境参数包括:当前脚本调用事件的处理结果、数据库中提取得到的数据以及各个SQL脚本中各个查询因子的取值等,以便终端设备基于上述运行环境参数搭建暂停时刻对应的运行环境。
进一步地,在所述基于各个所述查询因子的参数值个数,调整所述查询因子序列,以修复所述故障SQL脚本之后,还包括:
在S308中,基于所述运行环境参数,构建暂停时刻对应的事件调用环境,并重新调用修复后的所述异常调用进程。
在本实施例中,终端设备在确定故障调用进程中各个故障SQL脚本已修复完毕后,则可判定本次脚本调用事件中并不存在异常情况,因此可以继续执行该脚本调用事件。终端设备将根据S3032中保存运行环境参数,构建暂停时刻对应的事件调用环境,具体地,是将相关的参数值导入到修复后的故障SQL脚本中对应的参数内,以及将对应的处理结果导入到预设的结果数据库中,以还原暂停时刻该故障调用进程的运行状态。特别地,若终端设备通过将脚本调用事件对应的线程挂起,对调用操作进行暂停,则可以直接设置线程的状态为恢复运行。
在本实施例中,终端设备将对应的事件调用环境构建完成后,将重新执行修复后的异常调用进程,以便继续完成该脚本调用事件。特别地,终端设备将以修复后脚本调用事件的完成进度以及本次采集时间节点为基准,调整以后各个采集时间节点对应的进度范围,从而避免在故障修复后,仍重复判定该脚本调用事件存在异常情况,而进行死循环的情况。
在本发明实施例中,通过在检测到异常情况时对脚本调用事件进行暂停操作,并异常修复之后重新启动该脚本调用事件,从而避免异常情况的加剧以及不必要的资源浪费。
图4了本发明第四实施例提供的一种脚本调用事件的异常响应方法S105的具体实现流程图。参见图4所示,相对于图1所述实施例,本实施例提供的一种脚本调用事件的异常响应方法中所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;所述S104包括:S401以及S402,具体详述如下:
进一步地,所述识别所述消耗特征值大于预设的消耗阈值的运行控制文件为故障控制文件,并修复所述故障控制文件,包括:
在S401中,确定各个所述运行状态参数对应的权重值。
在本实施例中,终端设备获取各个SQL脚本的运行状态参数包含多种类型的参数,分别为运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数,不同的运作状态参数对应的权重值均不相同,因此终端设备首先需要确定各个运行状态参数对应的权重值,并根据上述权重值生成与之对应的消耗特征转换模型。
可选地,在本实施例中,终端设备可根据当前的检测模式,调整各个运行状态参数对应的权重值。例如,若当前的检测模式为运行时间优先模式,则平均运行时间参数对应的权重值较大,并适当调整其他运行状态参数的权重值;若当前的检测模式为内存优先模式,则内存占用参数对应的权重值较大,从而使得第一消耗特征值能够更有效表示对应检测模式的消耗情况。
在S402中,将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
在本实施例中,终端设备将S101中获取得到的多个运行状态参数对应的参数值导入到消耗特征转换模型中对应的位置中,并通过该消耗特征值转换模型,通过运行状态参数计算对应的第一消耗特征值。
在本发明实施例中,通过将获取得到的多个运行状态参数导入到预设的消耗特征转换模型中,实现由运行状态参数到第一消耗特征值的转换,提高了第一消耗特征值的计算效率。
图5示出了本发明第五实施例提供的一种脚本调用事件的异常响应方法的具体实现流程图。参见图5所示,相对于图1至图4所示实施例,本实施例提供的一种脚本调用事件的异常响应方法中在所述在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度之后,还包括S501~S504,详述如下:
进一步地,所述若监测故障SQL脚本,则获取所述故障SQL脚本的脚本标识,包括:
在S501中,若所述完成进度大于所述进度范围的上限值,则获取当前运行的调用进程的进程标识。
在本实施例中,终端设备若判定当前的完成进度大于预设的进度范围的上限值,则表示当前调用进程处于异常超前的情况,则可能是由于该调用进程中包含的SQL脚本数,与标准的调用进程的脚本数存在差异,即缺失了部分脚本,从而导致进度超出进度范围的上限值,因此需要获取标准的调用进程包含的SQL脚本数,从而确定缺失的SQL脚本。
在本实施例中,终端设备为了查询标注的调用进程包含的脚本数,因此获取脚本调用事件中当前运行的调用进程的进程标识。该进程标识可以为:进程名称、进程编号、调用进程在脚本调用事件中对应的序号等具有身份标识的信息。
在S502中,根据所述进程标识查询所述调用进程对应的标准SQL脚本列表。
在本实施例中,终端设备将根据该进程标识从调用进程库中查询与该进程标识匹配的标准调用进程,继而通过该标准调用进程中包含的SQL脚本,生成对应的标准SQL脚本列表。其中,该标准SQL脚本列表中记录有该标准调用进程中包含的所有SQL脚本。
在S503中,将所述标准SQL脚本列表与当前时刻所述调用进程的已执行脚本列表进行匹配,确定缺失SQL脚本;其中,所述缺失SQL脚本具体为存在于所述标准SQL脚本列表内且不存在于所述已执行脚本列表内的SQL脚本。
在本实施例中,为了确定当前运行的调用进程中缺失的SQL脚本,终端设备将获取调用进程中已执行脚本列表,并将该标准SQL脚本中的各个SQL脚本与已执行脚本列表进行匹配,确定是否在已执行脚本列表中查询到对应的SQL脚本,若在已执行脚本列表中存在与之对应的SQL脚本,则表示该脚本为非缺失SQL脚本,若无法在已执行脚本列表中查找到与之对应的SQL脚本,则表示该脚本为确实SQL脚本。
在本实施例中,终端设备在识别出各个缺失SQL脚本后,将从SQL脚本数据库中提取对应的SQL脚本文件,继而执行S504的相关操作。
在S504中,将所述缺失SQL脚本添加至所述调用进程中。
在本实施例中,终端设备将缺失的SQL脚本添加到调用进程中,以修复该进度异常超前的情况,终端设备还可以删除修复前该调用进程的处理结果,重新运行修复后的调用进程,从而得到正确的运行结果。
在本发明实施例中,通过对进度异常超前的情况进行异常响应,避免了因调用进程在封装过程中缺失部分SQL脚本的情况发生,从而提高了脚本调用事件处理结果的准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种脚本调用事件的异常响应终端的结构框图,该脚本调用事件的异常响应终端包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述脚本调用事件的异常响应终端包括:
完成进度获取单元61,用于在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度;其中,所述脚本调用事件具体用于:数据库根据所述脚本调用事件中包含的多个调用进程对应的启动序号,依次运行各个所述调用进程;
异常调用进程识别单元62,用于若所述完成进度小于所述进度范围的下限值,则识别当前运行的调用进程为异常调用进程;
运行状态参数获取单元63,用于获取所述异常调用进程包含的各个SQL脚本的运行状态参数;
消耗特征值计算单元64,用于将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
异常脚本识别单元65,用于识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
参数值个数获取单元66,用于根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
查询因子序列调整单元67,用于基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
可选地,所述查询因子序列调整单元67,包括:
获取所述查询因子在所述数据库中的数据覆盖率;
将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;
基于各个查询因子对应的区分度的数值,由大至小依次排列各个所述查询因子,生成标准查询因子序列;
将所述故障SQL脚本中的查询因子序列替换为所述标准查询因子序列;
其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f总为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
可选地,所述异常调用进程识别单元62包括:
脚本调用事件暂停单元,用于暂停运行所述脚本调用事件,并存储当前的运行环境参数;
脚本调用事件的异常响应终端还包括:
脚本调用事件重启单元,用于基于所述运行环境参数构建暂停时刻对应的事件调用环境,并重新调用修复后的所述异常调用进程。
可选地,所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;所述消耗特征值计算单元64,包括:
权重值确定单元,用于确定各个所述运行状态参数对应的权重值;
消耗特征值转换模型导入单元,用于将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
所述脚本调用事件的异常响应终端还包括:
进程标识获取单元,用于若所述完成进度大于所述进度范围的上限值,则获取当前运行的调用进程的进程标识;
标准SQL脚本列表获取单元,用于根据所述进程标识查询所述调用进程对应的标准SQL脚本列表;
确实SQL脚本获取单元,用于将所述标准SQL脚本列表与当前时刻所述调用进程的已执行脚本列表进行匹配,确定缺失SQL脚本;其中,所述缺失SQL脚本具体为存在于所述标准SQL脚本列表内且不存在于所述已执行脚本列表内的SQL脚本;
缺失SQL脚本添加单元,用于将所述缺失SQL脚本添加至所述调用进程中。
因此,本发明实施例提供的脚本调用事件的异常响应终端同样可以通过在启动了脚本调用事件后,终端设备以预设的时间间隔获取该脚本调用时间的完成进度,将该完成进度与预设的进度范围进行匹配,确定当前的进度是否落后于正常的进度,若是,则表示该脚本调用事件存在异常情况,从而到时进度较慢,因此识别当前执行的调用进程为异常调用进程,并执行异常响应操作。终端设备获取该异常调用进程中各个SQL脚本的运行状态参数,以便定位造成脚本调用事件异常的SQL脚本;终端设备根据各个SQL脚本的运行状态参数计算对应的消耗特征值,并将该消耗特征值与预设的消耗阈值进行比较,确定故障SQL脚本;获取故障SQL脚本对应的查询因子序列,继而对该查询因子序列进行调整,以修复故障SQL脚本,从而保障了脚本调用事件能够正常运行。与现有的脚本调用事件的异常响应技术相比,本发明实施例可以定期检测脚本调用事件的完成进度是否与预设的进度一致,从而发现脚本调用事件的异常情况,提高了异常情况的发现速率以及异常响应的效率。另一方面,也可以定位造成调用事件异常的脚本范围,只需对该异常调用进程中的SQL脚本进行检测,减少了需要进行异常检测的脚本数,也能加快异常修复的速率,并且整个修复过程均由终端设备完成,无需维护人员进行操作,也进一步提高了异常响应效率以及数据库的维护成本。
图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如脚本调用事件的异常响应程序。所述处理器70执行所述计算机程序72时实现上述各个脚本调用事件的异常响应方法实施例中的步骤,例如图1所示的S101至S107。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至67功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成完成进度获取单元、异常调用进程识别单元、运行状态参数获取单元、消耗特征值计算单元、异常脚本识别单元、参数值个数获取单元以及查询因子序列调整单元,各单元具体功能如下:
完成进度获取单元,用于在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度;其中,所述脚本调用事件具体用于:数据库根据所述脚本调用事件中包含的多个调用进程对应的启动序号,依次运行各个所述调用进程;
异常调用进程识别单元,用于若所述完成进度小于所述进度范围的下限值,则识别当前运行的调用进程为异常调用进程;
运行状态参数获取单元,用于获取所述异常调用进程包含的各个SQL脚本的运行状态参数;
消耗特征值计算单元,用于将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
异常脚本识别单元,用于识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
参数值个数获取单元,用于根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
查询因子序列调整单元,用于基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种脚本调用事件的异常响应方法,其特征在于,包括:
在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度;其中,所述脚本调用事件具体用于:数据库根据所述脚本调用事件中包含的多个调用进程对应的启动序号,依次运行各个所述调用进程;
若所述完成进度小于所述进度范围的下限值,则识别当前运行的调用进程为异常调用进程;
获取所述异常调用进程包含的各个SQL脚本的运行状态参数;
将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
2.根据权利要求1所述的脚本调用事件的异常响应方法,其特征在于,所述基于各个所述查询因子的参数值个数,调整所述查询因子序列,以修复所述故障SQL脚本,包括:
获取所述查询因子在所述数据库中的数据覆盖率;
将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;
基于各个查询因子对应的区分度的数值,由大至小依次排列各个所述查询因子,生成标准查询因子序列;
将所述故障SQL脚本中的查询因子序列替换为所述标准查询因子序列;
其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f总为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
3.根据权利要求1所述的脚本调用事件的异常响应方法,其特征在于,所述若所述完成进度小于所述进度范围的下限值,则识别当前运行的调用进程为异常调用进程包括:
暂停运行所述脚本调用事件,并存储当前的运行环境参数;
在所述基于各个所述查询因子的参数值个数,调整所述查询因子序列,以修复所述故障SQL脚本之后,还包括:
基于所述运行环境参数构建暂停时刻对应的事件调用环境,并重新调用修复后的所述异常调用进程。
4.根据权利要求1所述的脚本调用事件的异常响应方法,其特征在于,所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;
所述将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值,包括:
确定各个所述运行状态参数对应的权重值;
将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
5.根据权利要求1-4中任一项所述的脚本调用事件的异常响应方法,其特征在于,所述异常响应方法,还包括:
若所述完成进度大于所述进度范围的上限值,则获取当前运行的调用进程的进程标识;
根据所述进程标识查询所述调用进程对应的标准SQL脚本列表;
将所述标准SQL脚本列表与当前时刻所述调用进程的已执行脚本列表进行匹配,确定缺失SQL脚本;其中,所述缺失SQL脚本具体为存在于所述标准SQL脚本列表内且不存在于所述已执行脚本列表内的SQL脚本;
将所述缺失SQL脚本添加至所述调用进程中。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
在启动脚本调用事件之后,以预设的时间间隔获取脚本调用事件当前的完成进度;其中,所述脚本调用事件具体用于:数据库根据所述脚本调用事件中包含的多个调用进程对应的启动序号,依次运行各个所述调用进程;
若所述完成进度小于预设的进度范围的下限值,则识别当前运行的调用进程为异常调用进程;
获取所述异常调用进程包含的各个SQL脚本的运行状态参数;
将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值;其中,所述消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
识别所述消耗特征值大于预设的消耗阈值的所述SQL脚本为故障SQL脚本,并提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则。
7.根据权利要求6所述的终端设备,其特征在于,所述基于各个所述查询因子的参数值个数调整所述查询因子序列,以使所述查询因子序列中各个查询因子满足预设的排列规则,包括:
获取所述查询因子在所述数据库中的数据覆盖率;
将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;
基于各个查询因子对应的区分度的数值,由大至小依次排列各个所述查询因子,生成标准查询因子序列;
将所述故障SQL脚本中的查询因子序列替换为所述标准查询因子序列;
其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f总为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
8.根据权利要求6所述的终端设备,其特征在于,所述若所述完成进度小于所述进度范围的下限值,则识别当前运行的调用进程为异常调用进程包括:
暂停运行所述脚本调用事件,并存储当前的运行环境参数;
在所述基于各个所述查询因子的参数值个数,调整所述查询因子序列,以修复所述故障SQL脚本之后,还包括:
基于所述运行环境参数构建暂停时刻对应的事件调用环境,并重新调用修复后的所述异常调用进程。
9.根据权利要求6所述的终端设备,其特征在于,所述运行状态参数包括:运算资源占用参数、平均运行时间参数、内存占用参数以及运行次数;
所述将所述SQL脚本的运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的消耗特征值,包括:
确定各个所述运行状态参数对应的权重值;
将各个所述SQL脚本对应的所述运算资源占用参数、所述平均运行时间参数、所述内存占用参数以及所述运行次数,导入至消耗特征值转换模型,分别计算出各个所述SQL脚本对应的消耗特征值,所述消耗特征值转换模型具体为:
Ex=α1Ct(SQL)+α2T(SQL)+α3Buff(SQL)+α4Q(SQL)
其中,Ex为SQL脚本的消耗特征值,α1、α2、α3和α4为各个运行状态参数对应的权重值,Ct(SQL)为SQL脚本的运算资源占用参数,T(SQL)为SQL脚本的平均运行时间参数,Buff(SQL)为SQL脚本的内存占用参数,Q(SQL)为SQL脚本的运行次数。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711085988.6A CN108255704B (zh) | 2017-11-07 | 2017-11-07 | 一种脚本调用事件的异常响应方法及其终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711085988.6A CN108255704B (zh) | 2017-11-07 | 2017-11-07 | 一种脚本调用事件的异常响应方法及其终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255704A CN108255704A (zh) | 2018-07-06 |
CN108255704B true CN108255704B (zh) | 2020-01-10 |
Family
ID=62722170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711085988.6A Active CN108255704B (zh) | 2017-11-07 | 2017-11-07 | 一种脚本调用事件的异常响应方法及其终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255704B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930545B (zh) * | 2019-05-13 | 2023-11-03 | ***通信集团湖北有限公司 | Sql脚本处理方法、装置和服务器 |
CN110245077A (zh) * | 2019-05-22 | 2019-09-17 | 深圳壹账通智能科技有限公司 | 一种程序异常的响应方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135989A (zh) * | 2006-08-31 | 2008-03-05 | ***股份有限公司 | 一种Web应用***的自动化测试的方法和装置 |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN105760174A (zh) * | 2016-03-09 | 2016-07-13 | 浪潮软件集团有限公司 | 一种基于Windows定时任务的建议数据抽取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10623276B2 (en) * | 2015-12-29 | 2020-04-14 | International Business Machines Corporation | Monitoring and management of software as a service in micro cloud environments |
-
2017
- 2017-11-07 CN CN201711085988.6A patent/CN108255704B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135989A (zh) * | 2006-08-31 | 2008-03-05 | ***股份有限公司 | 一种Web应用***的自动化测试的方法和装置 |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN105760174A (zh) * | 2016-03-09 | 2016-07-13 | 浪潮软件集团有限公司 | 一种基于Windows定时任务的建议数据抽取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108255704A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI736633B (zh) | 應用訊息推送方法、裝置 | |
US10133775B1 (en) | Run time prediction for data queries | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN111355610A (zh) | 一种基于边缘网络的异常处理方法及装置 | |
CN110362455B (zh) | 一种数据处理方法和数据处理装置 | |
CN109343853B (zh) | 一种应用程序的异常识别方法及设备 | |
CN108255704B (zh) | 一种脚本调用事件的异常响应方法及其终端 | |
CN111651595A (zh) | 一种异常日志处理方法及装置 | |
CN110262951A (zh) | 一种业务秒级监控方法及***、存储介质及客户端 | |
CN113051308A (zh) | 告警信息处理方法、设备、存储介质及装置 | |
CN109885384B (zh) | 任务并行度优化方法、装置、计算机设备及存储介质 | |
CN109462646B (zh) | 一种异常响应的方法及设备 | |
CN110909129A (zh) | 异常投诉事件的识别方法及装置 | |
CN114791927A (zh) | 一种数据分析方法和装置 | |
CN108874876B (zh) | 一种消息推送方法、计算机可读存储介质及终端设备 | |
CN110865877B (zh) | 一种任务请求的响应方法及设备 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN107797924B (zh) | 一种sql脚本的异常检测方法及其终端 | |
CN108255710B (zh) | 一种脚本的异常检测方法及其终端 | |
CN114039878B (zh) | 一种网络请求的处理方法、装置、电子设备及存储介质 | |
KR102464688B1 (ko) | 모니터링 결과의 이벤트 등급 결정 방법 및 장치 | |
CN107957942B (zh) | 一种sql脚本的故障修复方法及其终端 | |
CN113127327B (zh) | 一种用于性能测试的测试方法及装置 | |
CN110232590B (zh) | 一种方案的生成方法及设备 | |
CN113722141A (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 |