CN107957942A - 一种sql脚本的故障修复方法及其终端 - Google Patents

一种sql脚本的故障修复方法及其终端 Download PDF

Info

Publication number
CN107957942A
CN107957942A CN201711086677.1A CN201711086677A CN107957942A CN 107957942 A CN107957942 A CN 107957942A CN 201711086677 A CN201711086677 A CN 201711086677A CN 107957942 A CN107957942 A CN 107957942A
Authority
CN
China
Prior art keywords
inquiry
factor
sql scripts
discrimination
sequence
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
Application number
CN201711086677.1A
Other languages
English (en)
Other versions
CN107957942B (zh
Inventor
吴丽娜
肖涵月
何恩赐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201711086677.1A priority Critical patent/CN107957942B/zh
Publication of CN107957942A publication Critical patent/CN107957942A/zh
Application granted granted Critical
Publication of CN107957942B publication Critical patent/CN107957942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明适用于数据处理技术领域,提供了一种SQL脚本的故障修复方法及其终端,包括:获取各个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脚本的故障修复方法包括:
获取各个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是本发明第一实施例提供的一种SQL脚本的故障修复方法的实现流程图;
图2是本发明第二实施例提供的一种SQL脚本的故障修复方法S106的具体实现流程图;
图3是本发明第三实施例提供的一种SQL脚本的故障修复方法S107的具体实现流程图;
图4是本发明第四实施例提供的一种SQL脚本的故障修复方法的具体实现流程图;
图5是本发明第五实施例提供的一种SQL脚本的故障修复方法的具体实现流程图;
图6是本发明一实施例提供的一种SQL脚本的故障修复终端的结构框图;
图7是本发明一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过获取各个SQL脚本的运行状态参数,并根据运行状态参数基础出该SQL脚本对应的消耗情况,并将各个SQL脚本的消耗情况与SQL脚本正常工作时对应的消耗阈值进行比较,判定该SQL脚本是否为故障SQL脚本;若某一SQL脚本被判定为故障SQL脚本,则根据该脚本中包含的查询因子序列,确定每个查询因子对应的参数值个数;并根据参数值个数得到该查询因子对应的区分度,继而终端设备可得到故障SQL脚本中各个查询因子所对应的区分度,并基于该区分度,调整查询因子序列,以便对故障SQL脚本进行修复,解决了现有的SQL脚本的故障修复技术,需要人工对数据库中包含的SQL脚本一一进行手动排查,故障检测效率较低,并且检测到故障的SQL脚本后,也依赖维护人员的专业知识进行人工故障修复,也进一步降低了SQL脚本故障响应的效率的问题。
在本发明实施例中,流程的执行主体为SQL脚本的故障修复终端,终端设备包括手机、计算机设备、平板电脑、服务器等终端,特别地,该终端设备具体为一布放于数据库系统中的SQL脚本的故障修复终端,通过获取各个SQL脚本在数据库中的运行情况,并对各个SQL脚本进行故障修复以及维护操作,该数据库系统中,包含多个数据服务器,各个数据库服务器调用SQL脚本资源库中的SQL脚本,完成对应的搜索、数据提取操作。图1示出了本发明第一实施例提供的SQL脚本的故障修复方法的实现流程图,详述如下:
在S101中,获取各个SQL脚本在数据库中的第一运行状态参数。
在本实施例中,异常检测的触发条件包括手动触发以及自动触发两种模式。其中,手动触发具体为:管理员在终端设备上生成一个异常检测启动指令,或通过用户终端向终端设备发送一个异常检测启动指令,终端设备若接收到该异常检测启动指令后,则执行S101的相关操作。而自动触发具体为:终端设备设置有异常检测启动时机,若终端设备检测到当前状态与预设的异常检测启动时机匹配,则执行S101的相关操作。
可选地,在本实施中,所述异常检测启动时机可以为一预设的检测周期,终端设备在监测到当前时刻满足该检测周期,则执行S101的相关操作。所述异常检测启动时机还可以为一运行消耗阈值,例如资源占用率,终端设备在监测到当前时刻待检测终端的运行消耗值大于或等于预设的运行消耗阈值,则执行S101的相关操作。由于设备的消耗过大,一般是由于SQL脚本异常而导致的,因此可通过运行消耗的情况作为触发条件,与周期触发的方式相比,可减少不必要的检测流程,从而提高设备的资源利用率。
在本实施例中,SQL脚本可运行与终端设备的数据库内,该情况下,待检测的终端即为本发明实施例提供的终端设备,即检测本地数据库中各个SQL脚本是否存在异常情况;SQL脚本也可以运行与终端设备外的其他数据库服务器中,在该情况下,终端设备即作为一独立的检测终端,监控该数据库服务器中的SQL脚本是否存在异常情况。特别地,终端设备还可以检测一数据库系统,该数据库系统中包含多个数据库服务器,且各个数据库服务器均从同一个SQL脚本资源库中提取对应的SQL脚本进行查询操作。其中,SQL脚本资源库中存储有多个SQL脚本,用于满足不同用户的查询需求,例如用户需要查询季度奖金相关的数据,则通过调用第一SQL脚本进行查询;用户需要统计车险客户的续保情况,则通过调用第二SQL脚本进行查询。
在本实施例中,终端设备在接收到用户的检测指令或满足对应的检测触发条件时,将分别获取各个SQL脚本的运行状态参数,特别地,该SQL脚本的运行状态参数中包含多个参数项,每个参数项对应一个参数值,分别表征不同的运行特征。其中,该SQL脚本的运作状态参数包括但不限于:运算资源占用参数、平均运行时间参数、内容占用参数以及调用次数。运行资源占用参数具体为调用该SQL脚本时,执行一次查询流程,所需消耗的运算资源,可选地,该运行资源占用参数可用CPU的平均占用个数来表示。
在S102中,将所述SQL脚本的第一运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的第一消耗特征值;其中,所述第一消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况。
在本实施例中,终端设备在获取了各个SQL脚本的运行状态参数后,将根据各个运行状态参数获取SQL脚本的消耗情况,因此将SQL脚本对应的运行状态参数中包含的多个参数值,导入到预设的消耗特征转换模型中,以通过运行状态参数计算其对应的第一消耗特征值,通过该第一消耗特征值表征该SQL脚本的消耗情况。
可选地,在本实施例中,该消耗特征转换模型可以为一哈希函数,终端设备将所述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脚本的运行次数。
可选地,终端设备可获取数据库当前的检测模式,不同的检测模式重点关注的运行状态参数各不相同,并根据该当前的检测模式,确定各个运行状态参数的权重值。例如:数据库处于运行时间检测模式,则该转换模型中,平均运行时间对应的权重值较大。
在S103中,选取所述第一消耗特征值大于预设的消耗阈值的所述SQL脚本作为故障SQL脚本。
在本实施例中,终端设备在计算了各个SQL脚本对应的第一消耗特征值后,将各个第一消耗特征值与预设的消耗阈值进行比对,若某一SQL脚本对应的第一消耗特征值小于或等于预设的消耗阈值,则表示该SQL脚本的消耗情况处于正常状态,识别该SQL脚本为正常SQL脚本;反之,若某一SQL脚本对应的第一消耗特征值大于预设的消耗阈值,则表示该SQL脚本的消耗情况已超出正常范围,处于异常消耗的SQL脚本,因此将是被该SQL脚本为故障SQL脚本。终端设备将从SQL脚本资源库中,将本次检测判定的故障SQL脚本提取出来,对其进行故障修复。
可选地,在本实施例中,终端设备记录有各个SQL脚本对应的消耗阈值。在该情况下,终端设备首先获取该SQL脚本对应的脚本标识,并根据该脚本标识确定其对应的消耗阈值,并将该SQL脚本的第一消耗特征值与其对应的消耗阈值进行比对,确定该SQL脚本是否为故障SQL脚本。其中,该消耗阈值具体为各个SQL脚本的历史消耗记录的平均消耗特征值。
在S104中,提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序。
在本实施例中,SQL脚本包含查询因子序列,该查询因子序列由以一定顺序排列的多个查询因子构成。数据库在调用该SQL脚本时,将根据该查询因子序列中各个查询因子的次序,依次选取与查询因子的参数值对应的数据。
例如,序号为1的第一查询因子具体为“地区”,该查询因子在某次查询的过程中,对应的参数值为“深圳”,而序号为2的第二查询因子具体为“性别”,在该次查询的过程中,对应的参数值为“女”。因此,数据库在调用该SQL脚本时,首先会将本次查询各个查询因子对应的参数值,导入到该SQL脚本中,并从数据库中依次选取与上述查询因子均匹配的数据。首先,数据库将查询包含“深圳”这一参数的数据,得到第一查询结果;并从第一查询结果中,选取性别为“女”的数据,得到第二查询结果,通过上述过程依次迭代,继而得到最后的查询结果,完成一次完整的查询操作。
因此可以看出,由于得到第一查询结果时,数据库需要遍历全部数据得到第一查询结果,而第二次查询操作时,则从第一查询结果中再次选取对应的数据。因此,若第一查询因子的数据筛选效率较低,则第一查询结果中包含的数据量较大,数据库服务器需要将较多的缓存来存储该第一查询结果,并且第二查询因子在进行数据选取时,其对应的数据基数量也较大,因此会导致运行消耗较大,因此虽然SQL脚本中包含的查询因子是固定的,但不同的排布将直接影响SQL脚本的运行效率。
在本实施例中,终端设备将识别故障SQL脚本中包含的查询因子序列,继而执行S105的相关操作。
在S105中,根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数。
在本实施例中,终端设备将根据该查询因子序列中包含的各个查询因子,确定数据库中每个数据中该查询因子所取的参数值,继而确定该查询因子在数据库中包含多少个不同的参数值,得到对应的参数值个数。
例如,某一查询因子为“地区”,在数据库中,某部分数据“地区”所取的值为“广州”,某部分数据“地区”所取的值为“深圳”,某部分数据“地区”所取的值为“香港”,剩余部分数据“地区”所取的值为“澳门”,因此,该“地区”查询因子在数据库中包含4个不同的参数值,即其对应的参数值个数为4。而对于查询因子为“性别”,则可以确定其对应的参数值个数为2,即取值为“男”或取值为“女”。因此可见,参数值个数越大的查询因子,其对应的数据筛选效率则越高,还是利用上述的例子,“地区”查询因子可以从数据库中平均筛选出四分之一的数据,而“性别”查询因子则只可以从数据库中筛选出二分之一的数据。
在S106中,基于所述参数值个数,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率。
在本实施例中,终端设备在得到各个查询因子对应的参数值个数后,将根据该参数值个数导入到预设的区分度转换模型,从而计算出各个查询因子对应的区分度。其中,参数值个数越大的查询因子,其对应的区分度越大。由于区分度是用于表示该查询因子对数据库中数据的筛选效率,因此通过S105中阐述可以确定,参数值个数的筛选效率越高,因此其对应的区分度也越大。
需要说明的是,每个查询因子的参数值个数以及区分度是相对于某一数据库而言的,是一个相对特征值。即某一查询因子在第一数据库中的参数值个数为5,但在另一数据库中的参数值个数可以为9,即在另一数据库中包含更多不同的取值。同样地,区分度也具有该特征。由于查询因子的参数值个数以及区分度是相当于某一数据库而言的,因此若数据库中包含的数据发生改变,也将影响该查询因子对应的区分度以及参数值个数。例如数据库增加了数据、删除了数据或替换了部分数据,则可能改变了数据库中查询因子包含的参数值的种类,从而改变了各个查询因子的参数值个数以及区分度。由此可见,SQL脚本发生异常,常常是由于SQL脚本中对应的查询因子序列,并未根据数据库中数据的更新而进行调整。
在S107中,根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本。
在本实施例中,终端设备将根据各个查询因子对应的区分度的数值大小,有小到大依次排列,得到标准的查询因子序列,并将该标准的查询因子序列作为该SQL脚本的查询因子序列,从而修复该故障的SQL脚本,提高其查询效率。
以上可以看出,本发明实施例提供的一种SQL脚本的故障修复方法通过获取各个SQL脚本的运行状态参数,并根据运行状态参数基础出该SQL脚本对应的消耗情况,并将各个SQL脚本的消耗情况与SQL脚本正常工作时对应的消耗阈值进行比较,判定该SQL脚本是否为故障SQL脚本;若某一SQL脚本被判定为故障SQL脚本,则根据该脚本中包含的查询因子序列,确定每个查询因子对应的参数值个数;并根据参数值个数得到该查询因子对应的区分度,继而终端设备可得到故障SQL脚本中各个查询因子所对应的区分度,并基于该区分度,调整查询因子序列,以便对故障SQL脚本进行修复。如上所述,SQL脚本发生故障,本质是该SQL脚本的搜索策略中各个查询因子排布不合理而导致的,因此,若对该查询因子序列进行调整后,继而修复该SQL脚本的故障,确保该SQL脚本的高效运行。与现有的SQL脚本的故障修复技术相比,从故障检测到故障修复整个流程均有终端设备自动执行,无需数据库的管理人员进行人工操作,从而提高了故障检测以及故障修复的效率,并提高了上述两个过程的准确性。另一方面,由于故障修复的过程不依赖维护人员的专业技能水平,终端设备可通过相应的检测算法以及修复算法对故障SQL脚本进行修复,从而降低了系统的维护成本。
图2示出了本发明第二实施例提供的一种SQL脚本的故障修复方法的具体实现流程图。参见图2所示,相对于图1所述实施例,本实施例提供的一种SQL脚本的故障修复方法中S106还包括S201以及S202,具体详述如下:
进一步地,所述基于所述参数值个数,计算所述查询因子对应的区分度,包括:
在S201中,获取所述查询因子在所述数据库中的数据覆盖率。
在本实施例中,由于每个查询因子的搜索效率,除了与该查询因子的参数值个数的相关联之外,还与该查询因子的在数据中的覆盖率有关,即相当于判断数据是否包含该查询因子,已经对一部分的数据进行了筛选,因此为了提高区分度的准确性,除了确定各个查询因子所对应的参数值个数外,还获取该查询因子在数据库中数据的覆盖率。
具体地,在本实施例中,根据统计该数据库中包含该查询因子的数据量以及该数据库中包含的数据总量,确定该查询因子对应的数据覆盖率,即数据覆盖率具体的计算公式为:
其中,所述f(x)为所述查询因子的数据覆盖率,所述f为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
在S202中,将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
在本实施例中,由于查询因子在数据库中的数据覆盖率越大,则表示包含该查询因子的数据越多,因此筛选出来的数据量也越大,从而查询的效率越低。因此,查询因子的区分度与其数据覆盖率成反比。特别地,该数据覆盖率为小于1的正数。对于数据库中任一数据均不包含某一查询因子,其对应的区分度为0。
在本实施例中,终端设备将获取得到的各个查询因子的参数值个数以及数据覆盖率,导入至该区分度计算模型中,计算得到各个查询因子的区分度。
在本发明实施例中,除了考虑查询因子的参数值个数外,还考虑查询因子在数据库中的数据覆盖率,从而提高了区分度计算的准确率,继而提高了SQL脚本故障修复的准确性。
图3了本发明第三实施例提供的一种SQL脚本的故障修复方法中S107的具体实现流程图。参见图3所示,相对于图1所述实施例,本实施例提供的一种SQL脚本的故障修复方法中,在S107包括S301~S303,具体详述如下:
进一步地,所述根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本,包括:
在S301中,基于各个所述查询因子的区分度的数值,由大至小依次排列,生成标准查询因子序列。
在本实施例中,终端设备在获取了各个查询因子对应的区分度后,则根据各个区分度的数值大小,由大至小依次排列,既然生成标准查询因子序列。其中,区分度较大的查询因子,其序号越前,反之,区分度较小的查询因子,其序号越后。
可选地,若两个或以上的查询因子,其对应的区分度数值大小相同,则上述查询因子之间的相对位置可任意排列,例如查询因子A到F对应的区分度分别为:8、12、8、5、8、6,则调整后的标准查询因子序列可以为:BACEFD、BAECFD或者BECAFD,只要AEC三个查询因子均排在B之后、FD之前即可。终端设备还可以根据区分度相同的查询因子其参数值个数的大小,设置上述查询因子之间的排列顺序。依然通过上述例子进行说明,查询因子ACE其对应的区分度均为8,但A的参数值个数为7,C的参数值个数为9,而E的参数值个数为6,则上述三者之间的相对排序可以为:CAE。
在本实施例中,终端设备确定了标准查询因子序列后,将该标准查询因子序列与故障SQL脚本中的查询因子序列进行匹配,若两者匹配成功,则执行S303的相关操作;若两者匹配失败,则执行S302的相关操作。
在S302中,若所述查询因子序列与所述标准查询因子序列不匹配,则将所述标准查询因子序列替换所述故障SQL脚本中的查询因子序列。
在本实施例中,若终端设备检测到故障SQL脚本中的查询因子序列与标准查询因子序列不匹配,则表示当前故障SQL脚本中查询因子的排布不合理,从而导致数据库调用该SQL脚本时,发送消耗异常的情况,因此,需要将该查询因子序列中各个查询因子的排布调整至与标准查询因子序列的排布一致,即将标准查询因子序列替换为故障SQL脚本的查询因子序列。
在本实施例中,若故障SQL脚本的查询因子序列中某些查询因子固定了对应的参数值,则终端设备在替换成功后,将各个查询因子对应的固定参数值配置至标准查询因子序列中,以保持修复后的SQL脚本的查询策略一致。
在S303中,若所述查询因子序列与所述标准查询因子序列匹配,则从所述查询因子序列中移除所述区分度的数值小于预设的区分度阈值的查询因子,并发送查询因子异常报告给所述数据库的维护账户。
在本实施例中,若终端设备检测到故障SQL脚本中的查询因子序列与标准查询因子序列一致,则表示该SQL脚本故障的原因并非查询因子序列的排布不合理而导致的,可能是由于该SQL脚本中对应的查询策略出现问题,无法达到查询相应结果的目的,因此需要判断各个查询因子的是否能够较好的数据查询目的。例如某一查询因子为查询数据库中包含“的”的数据,但该查询过程不具备实质的查询意义,因此可将该查询因子从查询因子序列中移除,以保证该SQL脚本的正常运行。
在本实施例中,终端设备将各个查询因子对应的区分度与预设的区分度阈值进行比较,确定无效的查询因子,并将该无效的查询因子从查询因子序列中移除,生成修复后的SQL脚本。由于查询因子删除后,整个SQL脚本中对应的查询策略发生了改变,因此此时需要发送一个查询因子异常报告给到维护账户,以便维护账户确定是否需要重新生成一个SQL脚本。
在本发明实施例中,通过故障SQL脚本中的查询因子序列与标准查询因子序列进行匹配,根据匹配结果执行对应的SQL脚本的修复操作,从而提高了脚本修复的准确率。
图4了本发明第四实施例提供的一种SQL脚本的故障修复方法的具体实现流程图。参见图4所示,相对于图1至图3所述实施例,本实施例提供的一种SQL脚本的故障修复方法中在所述获取各个SQL脚本的第一运行状态参数之前,还包括S401~S404,具体详述如下:
进一步地,在所述获取各个SQL脚本的运行状态参数之前,还包括:
在S401中,接收用户发送的搜索策略;其中,所述搜索策略包含多个所述查询因子。
在本实施例中,终端设备除了能够检测SQL脚本是否存在异常并进行故障修复外,还可以根据用户输入的搜索策略,为用户生成一个运行效率较优的SQL脚本。
在本实施例中,用户将需要进行查询的查询因子输入到搜索策略中,继而将该搜索策略发送给终端设备,终端设备在接收到用户发送的搜索策略后,将启动SQL脚本生成流程。优选地,终端设备将检测该用户的账户权限,确定该账户权限是否具备生成SQL脚本的权限,若具备则执行S402的相关操作;若不具备,则发送无效请求指令给用户对应的终端。
在S402中,根据当前所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数,并根据所述参数值个数,计算各个所述查询因子对应的区分度。
在本实施例中,终端设备提取搜索策略中包含的查询因子,并根据确定数据库中每个数据中该查询因子所取的参数值,确定其对应的参数值个数。其中,参数值个数的具体确定方法可参照S105的相关描述,在此不再赘述。
在本实施例中,终端设备得到各个用户输入的查询因子对应的参数值个数后,将根据各个查询因子对应的参数个数,计算其对应的区分度,其中区分度的具体计算方式可参照S106或S201~S202的相关描述,在此不再赘述。
在S403中,基于各个查询因子对应的区分度的数值,由大至小依次排列,生成查询因子序列。
在本实施例中,终端设备在获取了各个查询因子对应的区分度后,则根据各个区分度的数值大小,由大至小依次排列,既然生成标准查询因子序列。其中,区分度较大的查询因子,其序号越前,反之,区分度较小的查询因子,其序号越后。
在S404中,根据所述查询因子序列生成所述SQL脚本。
在本实施例中,终端设备将根据该生成的查询因子序列导入到SQL脚本中,继而得到与用户搜索策略匹配的SQL脚本。终端设备在得到SQL脚本后,将为其分配一个独立的脚本标识,并建立脚本标识与SQL脚本的对应关系,至此,数据库可根据脚本标识调用该SQL脚本。
在本发明实施例中,通过接受用户发送的搜索策略,生成与其对应的SQL脚本,从而提高了终端设备的适用范围,并且无需用户手动调整SQL脚本中各个查询因子的排序,提高了脚本生成的效率以及准确率。
图5示出了本发明第五实施例提供的一种SQL脚本的故障修复方法的具体实现流程图。参见图5所示,相对于图1所示实施例,本实施例提供的一种SQL脚本的故障修复方法中在S107之后,还包含S501~S503,详述如下:
进一步地,在所述根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本之后,还包括:
在S501中,获取修复后的所述故障SQL脚本对应的第二运行状态参数,并计算所述第二状态参数对应的第二消耗特征值。
在本实施例中,终端设备在故障SQL脚本修复完成后,将获取数据库调用修复后的故障SQL脚本是对应的第二运行状态参数,继而根据第二运行状态参数计算对应的第二消耗特征值,从而根据第二消耗特征值,确定该次故障修复是否成功。
可选地,终端设备可在修复完成后,启动一次模拟调用操作,以便及时获取该第二运行状态参数,从而提高了修复结果的获取速率。
在S502中,若所述第二消耗特征值大于所述消耗阈值,则生成故障报警信息;其中,所述故障报警信息包含调整后的所述查询因子序列。
在本实施例中,终端设备将第二消耗特征值与预设的正常消耗阈值进行比较,若第二消耗阈值小于或等于该消耗阈值,则表示已成功修复该SQL脚本的故障;若第二消耗阈值仍大于该消耗阈值,则表示该故障SQL脚本并非查询因子序列的问题导致消耗异常的,本次修复过程失败,需要通知相关的维护人员进行手动检测,因此将生成一个故障报警信息,并将该故障SQL脚本对应的查询因子序列封装于该故障报警信息中,以便维护人员能够初步了解该SQL脚本的相关信息。
在S503中,将所述故障报警信息推送给所述数据库的维护账户。
在本实施例中,终端设备将查询该数据库对应的维护账户的通信地址,继而与该通信地址对应的用户终端建立通信连接,并将该生成的故障报警信息发送给该维护账户对应的用户终端。优选地,终端设备将在该维护账户对应的办公系统中生成一个故障处理事件,该故障处理时间包含该故障报警信息,并将维护账户设置为该故障处理事件对应的处理账户,从而实现将故障报警信息推送给维护账户。
可选地,在本实施例中,终端设备将设置该故障SQL脚本为禁用脚本,数据库在调用每一个SQL脚本时,将获取该脚本对应的使用标识,若该使用标识为禁用标识,则无法调用该SQL脚本,从而避免用户重复调用故障SQL脚本,造成数据库的资源浪费。
在本发明实施例中,通过在修复完成后,对修复的SQL脚本进行复查,判断该故障情况是否已经消除,从而提高了故障修复的准确率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种SQL脚本的故障修复终端的结构框图,该SQL脚本的故障修复终端包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述SQL脚本的故障修复终端包括:
第一运行状态参数获取单元61,用于获取各个SQL脚本在数据库中的第一运行状态参数;
第一消耗特征值计算单元62,用于将所述SQL脚本的第一运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的第一消耗特征值;其中,所述第一消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
故障SQL脚本选取单元63,用于选取所述第一消耗特征值大于预设的消耗阈值的所述SQL脚本作为故障SQL脚本;
查询因子序列提取单元64,用于提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
参数值个数统计单元65,用于根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
区分度计算单元66,用于基于所述参数值个数,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;
故障修复单元67,用于根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本。
可选地,所述区分度计算单元66,还包括:
数据覆盖率获取单元,用于获取所述查询因子在所述数据库中的数据覆盖率;
区分度计算模型导入单元,用于将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
可选地,故障修复单元67,包括:
标准查询因子序列生成单元,用于基于各个所述查询因子的区分度的数值,由大至小依次排列,生成标准查询因子序列;
查询因子序列替换单元,用于若所述查询因子序列与所述标准查询因子序列不匹配,则将所述标准查询因子序列替换所述故障SQL脚本中的查询因子序列;
查询因子异常报告发送单元,用于若所述查询因子序列与所述标准查询因子序列匹配,则从所述查询因子序列中移除所述区分度的数值小于预设的区分度阈值的查询因子,并发送查询因子异常报告给所述数据库的维护账户。
可选地,所述SQL脚本的故障修复终端还包括:
搜索策略获取单元,用于接收用户发送的搜索策略;其中,所述搜索策略包含多个所述查询因子;
查询因子参数确定单元,用于根据当前所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数,并根据所述参数值个数,计算各个所述查询因子对应的区分度;
查询因子序列生成单元,用于基于各个查询因子对应的区分度的数值,由大至小依次排列,生成查询因子序列;
SQL脚本生成单元,用于根据所述查询因子序列生成所述SQL脚本。
可选地,所述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,例如SQL脚本的故障修复程序。所述处理器70执行所述计算机程序72时实现上述各个SQL脚本的故障修复方法实施例中的步骤,例如图1所示的S101至S107。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至67功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成第一运行状态参数获取单元、第一消耗特征值计算单元、故障SQL脚本选取单元、查询因子序列提取单元、参数值个数统计单元、参数值个数统计单元以及故障修复单元,各单元具体功能如下:
第一运行状态参数获取单元,用于获取各个SQL脚本在数据库中的第一运行状态参数;
第一消耗特征值计算单元,用于将所述SQL脚本的第一运行状态参数导入至预设的消耗特征值转换模型,计算各个所述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脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
基于所述参数值个数,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;
根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本。
2.根据权利要求1所述的故障修复方法,其特征在于,所述基于所述参数值个数,计算所述查询因子对应的区分度,包括:
获取所述查询因子在所述数据库中的数据覆盖率;
将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
3.根据权利要求1所述的故障修复方法,其特征在于,所述根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本,包括:
基于各个所述查询因子的区分度的数值,由大至小依次排列,生成标准查询因子序列;
若所述查询因子序列与所述标准查询因子序列不匹配,则将所述标准查询因子序列替换所述故障SQL脚本中的查询因子序列;
若所述查询因子序列与所述标准查询因子序列匹配,则从所述查询因子序列中移除所述区分度的数值小于预设的区分度阈值的查询因子,并发送查询因子异常报告给所述数据库的维护账户。
4.根据权利要求1-3任一项所述的故障修复方法,其特征在于,在所述获取各个SQL脚本的第一运行状态参数之前,还包括:
接收用户发送的搜索策略;其中,所述搜索策略包含多个所述查询因子;
根据当前所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数,并根据所述参数值个数,计算各个所述查询因子对应的区分度;
基于各个查询因子对应的区分度的数值,由大至小依次排列,生成查询因子序列;
根据所述查询因子序列生成所述SQL脚本。
5.根据权利要求1所述的故障修复方法,其特征在于,在所述根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本之后,还包括:
获取修复后的所述故障SQL脚本对应的第二运行状态参数,并计算所述第二状态参数对应的第二消耗特征值;
若所述第二消耗特征值大于所述消耗阈值,则生成故障报警信息;其中,所述故障报警信息包含调整后的所述查询因子序列;
将所述故障报警信息推送给所述数据库的维护账户。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取各个SQL脚本在数据库中的第一运行状态参数;
将所述SQL脚本的第一运行状态参数导入至预设的消耗特征值转换模型,计算各个所述SQL脚本对应的第一消耗特征值;其中,所述第一消耗特征值用于表示调用所述SQL脚本时对设备资源的占用情况;
选取所述第一消耗特征值大于预设的消耗阈值的所述SQL脚本作为故障SQL脚本;
提取所述故障SQL脚本中包含的查询因子序列;其中,所述查询因子序列具体用于:当数据库调用SQL脚本执行数据查询操作时,根据各个查询因子在所述查询因子序列中的顺序,确定各个所述查询因子的查询次序;
根据所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数;
基于所述参数值个数,计算各个所述查询因子对应的区分度;其中,所述区分度用于表示所述查询因子对所述数据库中数据的筛选效率;
根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本。
7.根据权利要求6所述的终端设备,其特征在于,所述基于所述参数值个数,计算所述查询因子对应的区分度,包括:
获取所述查询因子在所述数据库中的数据覆盖率;
将所述数据覆盖率以及所述参数值个数,导入至区分度计算模型,计算各个所述查询因子对应的区分度;其中,所述区分度计算模型为:
其中,S(x)为所述查询因子的区分度,所述Q(x)为所述查询因子的参数值个数,所述f(x)为所述查询因子的数据覆盖率,所述f为数据库包含的总数据量,所述fx为包含所述查询因子的数据量。
8.根据权利要求6所述的终端设备,其特征在于,所述根据各个所述查询因子对应的区分度,调整所述查询因子序列,以修复所述故障SQL脚本,包括:
基于各个所述查询因子的区分度的数值,由大至小依次排列,生成标准查询因子序列;
若所述查询因子序列与所述标准查询因子序列不匹配,则将所述标准查询因子序列替换所述故障SQL脚本中的查询因子序列;
若所述查询因子序列与所述标准查询因子序列匹配,则从所述查询因子序列中移除所述区分度的数值小于预设的区分度阈值的查询因子,并发送查询因子异常报告给所述数据库的维护账户。
9.根据权利要求6-8任一项所述的终端设备,其特征在于,在所述获取各个SQL脚本的第一运行状态参数之前,所述处理器执行所述计算机程序时还实现如下步骤::
接收用户发送的搜索策略;其中,所述搜索策略包含多个所述查询因子;
根据当前所述数据库内每个数据中所述查询因子所取的参数值,确定各个所述查询因子的参数值个数,并根据所述参数值个数,计算各个所述查询因子对应的区分度;
基于各个查询因子对应的区分度的数值,由大至小依次排列,生成查询因子序列;
根据所述查询因子序列生成所述SQL脚本。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN201711086677.1A 2017-11-07 2017-11-07 一种sql脚本的故障修复方法及其终端 Active CN107957942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711086677.1A CN107957942B (zh) 2017-11-07 2017-11-07 一种sql脚本的故障修复方法及其终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711086677.1A CN107957942B (zh) 2017-11-07 2017-11-07 一种sql脚本的故障修复方法及其终端

Publications (2)

Publication Number Publication Date
CN107957942A true CN107957942A (zh) 2018-04-24
CN107957942B CN107957942B (zh) 2020-01-14

Family

ID=61964477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711086677.1A Active CN107957942B (zh) 2017-11-07 2017-11-07 一种sql脚本的故障修复方法及其终端

Country Status (1)

Country Link
CN (1) CN107957942B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783867A (zh) * 2021-01-29 2021-05-11 李阳 为满足实时大数据业务需求的数据库优化方法及云服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532777A (zh) * 2013-10-08 2014-01-22 江苏大学 基于SOAP消息最坏差异输入变异的Web Service脆弱性测试方法
CN103617273A (zh) * 2013-12-05 2014-03-05 用友软件股份有限公司 Sql脚本对象化的方法及系统
US20140108665A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multilevel api integration
CN106547662A (zh) * 2016-10-21 2017-03-29 长安通信科技有限责任公司 一种用于分布式数据库的性能故障定位方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108665A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multilevel api integration
CN103532777A (zh) * 2013-10-08 2014-01-22 江苏大学 基于SOAP消息最坏差异输入变异的Web Service脆弱性测试方法
CN103617273A (zh) * 2013-12-05 2014-03-05 用友软件股份有限公司 Sql脚本对象化的方法及系统
CN106547662A (zh) * 2016-10-21 2017-03-29 长安通信科技有限责任公司 一种用于分布式数据库的性能故障定位方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783867A (zh) * 2021-01-29 2021-05-11 李阳 为满足实时大数据业务需求的数据库优化方法及云服务器

Also Published As

Publication number Publication date
CN107957942B (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
CN109034244B (zh) 基于电量曲线特征模型的线损异常诊断方法及装置
CN108564181A (zh) 电力设备故障检测与维修方法及终端设备
CN109992600B (zh) 一种设备故障的响应方法及设备
CN109639504B (zh) 一种基于云平台的告警信息处理方法和装置
CN109299846A (zh) 一种核电站设备可靠性分析方法、系统及终端设备
CN110149223B (zh) 故障定位方法和设备
CN114514141A (zh) 充电站监测方法和设备
CN109495291B (zh) 调用异常的定位方法、装置和服务器
CN113591393B (zh) 智能变电站的故障诊断方法、装置、设备和存储介质
CN107636741A (zh) 金融终端的故障预警方法、终端设备及存储介质
Babu et al. Detecting unusual customer consumption profiles in power distribution systems—APSPDCL
CN108255703A (zh) 一种sql脚本的故障修复方法及其终端
CN108833442A (zh) 一种分布式网络安全监控装置及其方法
CN109302383A (zh) 一种url监控方法及装置
CN109587145B (zh) 一种电力网络中的虚假数据入侵检测方法、装置及设备
CN104502692A (zh) 电量异动的检测方法及中央处理设备
CN107957942A (zh) 一种sql脚本的故障修复方法及其终端
CN117640203A (zh) 电网信息安全防护方法及系统
CN104104666B (zh) 一种探测云端服务异常的方法和装置
CN108335435A (zh) 一种存取款机的维护方法、装置、终端设备和存储介质
CN108133540A (zh) 钞箱内纸币数量异常的检测方法、检测装置及电子设备
CN115016976B (zh) 一种根因定位方法、装置、设备及存储介质
CN108255710A (zh) 一种脚本的异常检测方法及其终端
CN111062503A (zh) 一种电网监控告警处理方法、系统、终端及存储介质
CN116843314A (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