CN110716912A - 一种sql性能检测方法及服务器 - Google Patents
一种sql性能检测方法及服务器 Download PDFInfo
- Publication number
- CN110716912A CN110716912A CN201810763983.2A CN201810763983A CN110716912A CN 110716912 A CN110716912 A CN 110716912A CN 201810763983 A CN201810763983 A CN 201810763983A CN 110716912 A CN110716912 A CN 110716912A
- Authority
- CN
- China
- Prior art keywords
- sql
- executed
- sentence
- statement
- server
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 34
- 241000282813 Aepyceros melampus Species 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005192 partition Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种SQL性能检测方法及服务器,其中,所述SQL性能检测方法包括:接收SQL客户端发送的待执行SQL语句;对所述待执行SQL语句进行解析,获得解析结果;判断所述解析结果是否与预定义的规则匹配;当所述解析结果不与所述预定义的规则匹配时,确定所述待执行SQL语句是故障SQL语句,拒绝将所述待执行SQL语句发送至SQL引擎。本发明的方案,相比于当前通过用户查看来判断待执行SQL语句是否为故障SQL语句,可以提高检测效率,避免出错。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种SQL性能检测方法及服务器。
背景技术
随着互联网技术和日常生活、商业活动的结合日益紧密,随着计算机硬件的发展以及计算能力的提升,对大数据进行分析已成为现实。以金融系统为例,每日交易量普遍达到百万级,每日数据增量达到数百GB至数十TB。对于这些数据,在大部分场景下,用户一般使用结构化查询语言(Structured Query Language,SQL)进行分析。
在目前的大数据领域中,使用最为广泛的SQL引擎是Hive、Impala以及Spark,其中Hive为一种基于MapReduce实现的SQL引擎,Impala为一种基于MPP架构实现的SQL引擎,Spark为一种分布式计算引擎。由于此三个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性能过程的系统架构图;
图3为本发明实施例的服务器的结构示意图之一;
图4为本发明实施例的服务器的结构示意图之二;
图5为本发明实施例的SQL性能检测系统的结构示意图;
图6为本发明实施例的服务器的结构示意图之三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先指出的是,本发明实施例中的服务器具体为代理服务器,位于SQL客户端和SQL引擎之间,可从SQL客户端接收待执行SQL语句,对接收到的待执行SQL语句进行检测,并在检测出待执行SQL语句是故障SQL语句(也可称为慢SQL语句,即慢查询的SQL语句)时,拒绝将待执行SQL语句发送至SQL引擎,相比于当前通过用户查看来判断待执行SQL语句是否为故障SQL语句,不仅可以提高检测效率,避免出错,还可以避免SQL引擎执行故障SQL语句,及避免故障SQL语句占用集群资源,从而维持集群的稳定。
参见图1所示,本发明实施例提供了一种SQL性能检测方法,应用于服务器,该方法包括以下步骤:
步骤101:接收SQL客户端发送的待执行SQL语句。
本发明实施例中,该待执行SQL语句可由用户提交至SQL客户端。该SQL客户端配置的连接地址可为服务器的地址。
步骤102:对待执行SQL语句进行解析,获得解析结果。
本发明实施例中,该解析结果可选为待执行SQL语句的语法树、执行计划等,本发明实施例不对此进行限制。服务器对待执行SQL语句进行解析的过程可为:首先,选择与待执行SQL语句匹配的SQL解析器;然后,利用选择的SQL解析器对待执行SQL语句进行解析,获得解析结果。
进一步地,服务器选择SQL解析器的过程可为:首先,获取服务器与SQL客户端之间的连接参数;然后,根据获取的连接参数,选择与所述待执行SQL语句匹配的SQL解析器。例如,若对于服务器与SQL客户端之间的Java数据库连接(Java Data Base Connectivity,JDBC)的统一资源定位符(Uniform Resource Locator,URL)为:jdbc:hive2://localhost:10000/default?engine=spark,则此时可根据engine参数即spark,选择Spark SQL解析器进行解析。
步骤103:判断解析结果是否与预定义的规则匹配。
本发明实施例中,步骤103对应的判断过程可为:判断解析结果是否与预定义的规则匹配,以确定待执行SQL语句是否是故障SQL语句;其中若解析结果与预定义的规则匹配,则确定待执行SQL语句不是故障SQL语句,符合规范,不存在性能问题;否则,确定待执行SQL语句是故障SQL语句,存在性能问题。
需说明的是,该预定义的规则可在服务器初始化时预先定义。例如该预定义的规则为“SELECT*语句必须使用LIMIT子句”,用户设置SELECT语句语法树中project节点的值为“*”,此时若解析结果表明在SELECT语句的语法树中包含LIMIT节点,则说明其与预定义的规则匹配,相应待执行SQL语句不是故障SQL语句,否则相应待执行SQL语句是故障SQL语句,存在性能问题。又例如该预定义的规则为“SELECT分区表时,必须选择分区”,用户设置SELECT语句中执行计划里若包含分区表,则使用的该分区表的分区数量小于总分区数量,此时若对应执行计划里面包含了使用分区表所有计划的信息,则解析结果与预定义的规则匹配,相应待执行SQL语句不是故障SQL语句,否则相应待执行SQL语句是故障SQL语句,存在性能问题。
步骤104:当解析结果不与预定义的规则匹配时,确定待执行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语句可包括以下至少一种:Hive SQL语句、Impala SQL语句和Spark SQL语句。
可选的,由于Hive、Impala以及Spark SQL这三个引擎均支持Hive使用Thrift定义的SQL查询协议,因此SQL客户端中可使用Hive的JDBC、ODBC或者Python驱动,服务器可使用Hive Thrift协议,以能够通过无侵入和修改的方式在SQL客户端和服务器之间传输相应SQL语句。具体的,服务器可接收SQL客户端通过以下之一的接口发送的待执行SQL语句:
JDBC接口、开放数据库连接(Open Database Connectivity,ODBC)接口和Thrift接口。
本发明实施例中,步骤103之后,所述方法还可包括:
当所述解析结果与所述预定义的规则匹配时,将所述待执行SQL语句发送至SQL引擎,由所述SQL引擎执行所述待执行SQL语句;
接收所述SQL引擎发送的执行结果;
将所述执行结果发送至所述SQL客户端。
这样,可方便SQL客户端获知待执行SQL语句对应的执行结果。
下面结合图2对本发明具体实例的SQL性能检测过程进行说明。
本发明具体实例中,如图2所示,SQL客户端1可包括Hive客户端11、Impala客户端12和Spark客户端13;代理服务器2可包括Hive Thrift服务器21、解析模组22和检测模组(可称为性能检测规则引擎)23,其中该Hive Thrift服务器21用于接收SQL客户端1发送的SQL语句,该解析模组22中可包括Hive SQL解析器221、Impala SQL解析器222和Spark SQL解析器223;SQL引擎3可包括Hive引擎31、Impala引擎32和Spark引擎33,其中比如该Hive引擎31可对应于HiveServer2,该Impala引擎32可对应于Impala Daemon,该Spark引擎33可对应于Spark Thrift Server。
在SQL性能检测过程中,SQL客户端1和代理服务器2之间可通过Thrift协议传输SQL语句,例如Hive客户端11可发送Hive SQL语句至Hive Thrift服务器21,Impala客户端12可发送Impala SQL语句至Hive Thrift服务器21,Spark客户端13可发送Spark SQL语句至Hive Thrift服务器21。在Hive Thrift服务器21接收到SQL语句后,解析模组22可选择与接收到的SQL语句匹配的SQL解析器进行解析,比如对于Hive SQL语句可选择Hive SQL解析器221进行解析,对于Impala SQL语句可选择Impala SQL解析器222进行解析,对于SparkSQL语句可选择Spark SQL解析器223进行解析,该检测模组23用于依据解析结果判断接收到的SQL语句是否是故障SQL语句。当接收到的SQL语句是故障SQL语句时,代理服务器2可拒绝将其发送至SQL引擎3;而当接收到的SQL语句不是故障SQL语句时,代理服务器2可将其发送至SQL引擎3以执行,比如Hive引擎31可执行Hive SQL语句,Impala引擎32可执行ImpalaSQL语句,Spark引擎33可执行Spark SQL语句。
上述实施例对本发明的SQL性能检测方法进行了说明,下面将结合实施例和附图对本发明的服务器进行说明。
参见图3所示,本发明实施例还提供了一种服务器,包括:
第一接收模块31,用于接收SQL客户端发送的待执行SQL语句;
解析模块32,用于对所述待执行SQL语句进行解析,获得解析结果;
判断模块33,用于判断所述解析结果是否与预定义的规则匹配;
控制模块34,用于当所述解析结果不与所述预定义的规则匹配时,确定所述待执行SQL语句是故障SQL语句,拒绝将所述待执行SQL语句发送至SQL引擎。
本发明实施例的服务器,通过接收SQL客户端发送的待执行SQL语句,对待执行SQL语句进行检测,当检测出待执行SQL语句是故障SQL语句时,拒绝将该待执行SQL语句发送至SQL引擎,相比于当前通过用户查看来判断待执行SQL语句是否为故障SQL语句,不仅可以提高检测效率,避免出错,还可以避免SQL引擎执行故障SQL语句,及避免故障SQL语句占用集群资源,从而维持集群的稳定。
本发明实施例中,可选的,所述解析模块32包括:
选择单元,用于选择与所述待执行SQL语句匹配的SQL解析器;
解析单元,用于利用所述SQL解析器对所述待执行SQL语句进行解析,获得所述解析结果。
可选的,所述选择单元具体用于:
获取所述服务器与所述SQL客户端之间的连接参数,根据所述连接参数,选择与所述待执行SQL语句匹配的SQL解析器。
可选的,参见图4所示,所述服务器还包括:
第一发送模块35,用于当所述解析结果与所述预定义的规则匹配时,将所述待执行SQL语句发送至SQL引擎,由所述SQL引擎执行所述待执行SQL语句;
第二接收模块36,用于接收所述SQL引擎发送的执行结果;
第二发送模块37,用于将所述执行结果发送至所述SQL客户端。
可选的,所述服务器还包括:
第三发送模块,用于当所述解析结果不与所述预定义的规则匹配时,向所述SQL客户端发送报告信息;
其中,所述报告信息中包括所述待执行SQL语句是故障SQL语句的原因。
可选的,所述待执行SQL语句包括以下至少一种:
Hive SQL语句、Impala SQL语句和Spark SQL语句。
可选的,所述第一接收模块31具体用于:接收所述SQL客户端通过以下之一的接口发送的所述待执行SQL语句:
JDBC接口、ODBC接口和Thrift接口。
参见图5所示,本发明实施例还提供了一种SQL性能检测系统,包括:SQL客户端51、服务器52和SQL引擎53;
其中,所述SQL客户端51与所述服务器52连接,用于向所述服务器52发送待执行SQL语句;
所述服务器52与所述SQL引擎53连接,用于接收所述SQL客户端51发送的所述待执行SQL语句,对所述待执行SQL语句进行解析,获得解析结果,判断所述解析结果是否与预定义的规则匹配,当所述解析结果不与所述预定义的规则匹配时,确定所述待执行SQL语句是故障SQL语句,拒绝将所述待执行SQL语句发送至所述SQL引擎53。
本发明实施例中,可选的,所述服务器52还用于:
选择与所述待执行SQL语句匹配的SQL解析器;利用所述SQL解析器对所述待执行SQL语句进行解析,获得所述解析结果。
可选的,所述服务器52还用于:
获取所述服务器与所述SQL客户端之间的连接参数;根据所述连接参数,选择与所述待执行SQL语句匹配的SQL解析器。
可选的,所述服务器52还用于:
当所述解析结果与所述预定义的规则匹配时,确定所述待执行SQL语句不是故障SQL语句,将所述待执行SQL语句发送至SQL引擎53,由所述SQL引擎53执行所述待执行SQL语句;接收所述SQL引擎53发送的执行结果;将所述执行结果发送至所述SQL客户端51。
可选的,所述服务器52还用于:
当所述解析结果不与所述预定义的规则匹配时,向所述SQL客户端51发送报告信息;其中,所述报告信息中包括所述待执行SQL语句是故障SQL语句的原因。
可选的,所述待执行SQL语句包括以下至少一种:
Hive SQL语句、Impala SQL语句和Spark SQL语句。
可选的,所述服务器52还用于:
接收所述SQL客户端51通过以下之一的接口发送的所述待执行SQL语句:
Java数据库连接JDBC接口、开放数据库连接ODBC接口和Thrift接口。
此外,本发明实施例还提供了一种服务器,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器执行时实现上述SQL性能检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图6所示,本发明实施例还提供一种服务器,包括总线61、收发机62、天线63、总线接口64、处理器65和存储器66。
在本发明实施例中,所述服务器还包括:存储在存储器66上并可在处理器65上运行的计算机程序,其中,所述计算机程序被处理器65执行时可实现上述SQL性能检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
收发机62,用于在处理器65的控制下接收和发送数据。
在图6中,总线架构(用总线61来代表),总线61可以包括任意数量的互联的总线和桥,总线61将包括由处理器65代表的一个或多个处理器和存储器66代表的存储器的各种电路链接在一起。总线61还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口64在总线61和收发机62之间提供接口。收发机62可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器65处理的数据通过天线63在无线介质上进行传输,进一步,天线63还接收数据并将数据传送给处理器65。
处理器65负责管理总线61和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器66可以被用于存储处理器65在执行操作时所使用的数据。
可选的,处理器65可以是CPU、ASIC、FPGA或CPLD。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述SQL性能检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种SQL性能检测方法,应用于服务器,其特征在于,包括:
接收结构化查询语言SQL客户端发送的待执行SQL语句;
对所述待执行SQL语句进行解析,获得解析结果;
判断所述解析结果是否与预定义的规则匹配;
当所述解析结果不与所述预定义的规则匹配时,确定所述待执行SQL语句是故障SQL语句,拒绝将所述待执行SQL语句发送至SQL引擎。
2.根据权利要求1所述的方法,其特征在于,所述对所述待执行SQL语句进行解析,获得解析结果,包括:
选择与所述待执行SQL语句匹配的SQL解析器;
利用所述SQL解析器对所述待执行SQL语句进行解析,获得所述解析结果。
3.根据权利要求2所述的方法,其特征在于,所述选择与所述待执行SQL语句匹配的SQL解析器,包括:
获取所述服务器与所述SQL客户端之间的连接参数;
根据所述连接参数,选择与所述待执行SQL语句匹配的SQL解析器。
4.根据权利要求1所述的方法,其特征在于,当所述解析结果与所述预定义的规则匹配时,所述方法还包括:
确定所述待执行SQL语句不是故障SQL语句,将所述待执行SQL语句发送至SQL引擎,由所述SQL引擎执行所述待执行SQL语句;
接收所述SQL引擎发送的执行结果;
将所述执行结果发送至所述SQL客户端。
5.根据权利要求1所述的方法,其特征在于,当所述解析结果不与所述预定义的规则匹配时,所述方法还包括:
向所述SQL客户端发送报告信息;
其中,所述报告信息中包括所述待执行SQL语句是故障SQL语句的原因。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述待执行SQL语句包括以下至少一种:
Hive SQL语句、Impala SQL语句和Spark SQL语句。
7.根据权利要求6所述的方法,其特征在于,所述接收结构化查询语言SQL客户端发送的待执行SQL语句,包括:
接收所述SQL客户端通过以下之一的接口发送的所述待执行SQL语句:
Java数据库连接JDBC接口、开放数据库连接ODBC接口和Thrift接口。
8.一种服务器,其特征在于,包括:
第一接收模块,用于接收SQL客户端发送的待执行SQL语句;
解析模块,用于对所述待执行SQL语句进行解析,获得解析结果;
判断模块,用于判断所述解析结果是否与预定义的规则匹配;
控制模块,用于当所述解析结果不与所述预定义的规则匹配时,确定所述待执行SQL语句是故障SQL语句,拒绝将所述待执行SQL语句发送至SQL引擎。
9.一种SQL性能检测系统,其特征在于,包括:SQL客户端、服务器和SQL引擎;
其中,所述SQL客户端与所述服务器连接,用于向所述服务器发送待执行SQL语句;
所述服务器与所述SQL引擎连接,用于接收所述SQL客户端发送的所述待执行SQL语句,对所述待执行SQL语句进行解析,获得解析结果,判断所述解析结果是否与预定义的规则匹配,当所述解析结果不与所述预定义的规则匹配时,确定所述待执行SQL语句是故障SQL语句,拒绝将所述待执行SQL语句发送至所述SQL引擎。
10.一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的SQL性能检测方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的SQL性能检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810763983.2A CN110716912B (zh) | 2018-07-12 | 2018-07-12 | 一种sql性能检测方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810763983.2A CN110716912B (zh) | 2018-07-12 | 2018-07-12 | 一种sql性能检测方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716912A true CN110716912A (zh) | 2020-01-21 |
CN110716912B CN110716912B (zh) | 2021-09-28 |
Family
ID=69208395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810763983.2A Active CN110716912B (zh) | 2018-07-12 | 2018-07-12 | 一种sql性能检测方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716912B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291990A (zh) * | 2020-02-04 | 2020-06-16 | 浙江大华技术股份有限公司 | 一种质量监控处理方法及装置 |
CN112069202A (zh) * | 2020-09-09 | 2020-12-11 | 上海携程商务有限公司 | 基于追踪技术的sql性能分析方法、系统、设备及介质 |
CN114896269A (zh) * | 2022-05-31 | 2022-08-12 | 北京达佳互联信息技术有限公司 | 结构化查询语句检测方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073640A (zh) * | 2009-11-19 | 2011-05-25 | 阿里巴巴集团控股有限公司 | Sql语句的检测方法、系统及服务器 |
US20110145210A1 (en) * | 2009-12-10 | 2011-06-16 | Negti Systems, Inc. | System and Method for Managing One or More Databases |
CN106980637A (zh) * | 2016-09-28 | 2017-07-25 | 平安科技(深圳)有限公司 | Sql审核方法和装置 |
CN107391384A (zh) * | 2017-08-14 | 2017-11-24 | 中国银行股份有限公司 | 一种sql语句检测方法及系统 |
CN107480063A (zh) * | 2017-08-10 | 2017-12-15 | 上海携程国际旅行社有限公司 | 动态扫描sql 语句的方法及系统、电子设备、存储介质 |
-
2018
- 2018-07-12 CN CN201810763983.2A patent/CN110716912B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073640A (zh) * | 2009-11-19 | 2011-05-25 | 阿里巴巴集团控股有限公司 | Sql语句的检测方法、系统及服务器 |
US20110145210A1 (en) * | 2009-12-10 | 2011-06-16 | Negti Systems, Inc. | System and Method for Managing One or More Databases |
CN106980637A (zh) * | 2016-09-28 | 2017-07-25 | 平安科技(深圳)有限公司 | Sql审核方法和装置 |
CN107480063A (zh) * | 2017-08-10 | 2017-12-15 | 上海携程国际旅行社有限公司 | 动态扫描sql 语句的方法及系统、电子设备、存储介质 |
CN107391384A (zh) * | 2017-08-14 | 2017-11-24 | 中国银行股份有限公司 | 一种sql语句检测方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291990A (zh) * | 2020-02-04 | 2020-06-16 | 浙江大华技术股份有限公司 | 一种质量监控处理方法及装置 |
CN111291990B (zh) * | 2020-02-04 | 2023-11-07 | 浙江大华技术股份有限公司 | 一种质量监控处理方法及装置 |
CN112069202A (zh) * | 2020-09-09 | 2020-12-11 | 上海携程商务有限公司 | 基于追踪技术的sql性能分析方法、系统、设备及介质 |
CN114896269A (zh) * | 2022-05-31 | 2022-08-12 | 北京达佳互联信息技术有限公司 | 结构化查询语句检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110716912B (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9444899B2 (en) | Use of internet information services logging to collect user information in an asynchronous manner | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN110716912B (zh) | 一种sql性能检测方法及服务器 | |
US10049033B2 (en) | Application gateway for cloud computing systems | |
US11362912B2 (en) | Support ticket platform for improving network infrastructures | |
US20200327045A1 (en) | Test System and Test Method | |
US10831647B2 (en) | Flaky test systems and methods | |
CN114490268A (zh) | 全链路监控方法、装置、设备、存储介质和程序产品 | |
CN111246406A (zh) | 一种短信发送方法、系统、存储介质及终端设备 | |
EP3433734A1 (en) | Technologies for auto discover and connect to a rest interface | |
US20170237825A1 (en) | Resource Download Method, Electronic Device, and Apparatus | |
CN108287876B (zh) | 支持多种格式的电能质量数据服务质量检测方法和装置 | |
CN112671574B (zh) | 前后端联调方法、装置、代理设备及存储介质 | |
CN110162982B (zh) | 检测非法权限的方法及装置、存储介质、电子设备 | |
US11768889B1 (en) | Evaluating configuration files for uniform resource indicator discovery | |
CN114817300A (zh) | 基于sql语句的日志查询方法及其应用 | |
CN112631929A (zh) | 测试用例生成方法、装置、存储介质及电子设备 | |
CN112286792A (zh) | 一种接口测试方法、装置、设备和存储介质 | |
CN114760218B (zh) | 一种链路采样方法及其相关装置 | |
CN112948269B (zh) | 信息处理方法、信息处理装置、电子设备及可读存储介质 | |
CN117194390B (zh) | 数据库迁移方法和装置 | |
CN117235107B (zh) | 数据访问处理方法、装置、电子设备及存储介质 | |
CN117459416A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN117951000A (zh) | 信息生成方法、装置、电子设备及存储介质 | |
CN117033132A (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 |