CN115617561A - 一种sql语句执行超时的控制方法及装置 - Google Patents

一种sql语句执行超时的控制方法及装置 Download PDF

Info

Publication number
CN115617561A
CN115617561A CN202211378816.9A CN202211378816A CN115617561A CN 115617561 A CN115617561 A CN 115617561A CN 202211378816 A CN202211378816 A CN 202211378816A CN 115617561 A CN115617561 A CN 115617561A
Authority
CN
China
Prior art keywords
statement
timeout
execution
control condition
client
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.)
Pending
Application number
CN202211378816.9A
Other languages
English (en)
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.)
Bank of China Ltd
Original Assignee
Bank 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202211378816.9A priority Critical patent/CN115617561A/zh
Publication of CN115617561A publication Critical patent/CN115617561A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种SQL语句执行超时的控制方法及装置,涉及数据库领域,也可用于金融领域,包括:从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;根据语句类型将预设的超时控制条件映射至对应的语句;根据所述超时控制条件反馈语句执行结果至所述客户端。本申请能够引入超时控制机制,保证解决应用程序在线程级的异常超时问题。

Description

一种SQL语句执行超时的控制方法及装置
技术领域
本申请涉及数据库领域,可以用于金融领域,具体是一种SQL语句执行超时的控制方法及装置。
背景技术
金融机构中一般设置有基础数据平台,其通过执行批量作业,接收来自事务型业务系统的各类交易明细数据,对该交易明细数据进行转换、集成与加工批量处理,并按照金融机构的数据主题来组织和存储数据,为分析型应用提供数据支撑。通常,各大金融机构会以分布式数据库作为搭建基础数据平台的基础设施。为确保整个基础数据平台的吞吐能力,需要及时发现执行超时SQL语句,否则这类SQL语句将会占据系统资源、占据提交用户的并发资源,影响批量作业的完成时效。
现有技术中,出现执行超时的情况时,解决方式一般如下:一、等待其响应;二、强行关闭pl/sql,pl/sql会在临时目录下生成保留当前窗口的打开状态的文件,下次启动pl/sql时会显示待恢复的窗口,这个文件存放在TEMP/PLS-Recovery;降低工作效率。
发明内容
针对现有技术中的问题,本申请提供一种SQL语句执行超时的控制方法及装置,能够引入超时控制机制,保证解决应用程序在线程级的异常超时问题。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种SQL语句执行超时的控制方法,包括:
从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
根据语句类型将预设的超时控制条件映射至对应的语句;
根据所述超时控制条件反馈语句执行结果至所述客户端。
进一步地,所述从客户端接收语句执行请求,并将所述语句执行请求发送至数据库,包括:
启动第一线程,并利用所述第一线程接收所述语句执行请求;
启动第二线程,并利用所述第二线程将所述语句执行请求发送至所述数据库服务器。
进一步地,所述根据语句类型将预设的超时控制条件映射至对应的语句,包括:
访问持久层,并获取所述语句对应的命名空间及配置参数;
根据所述命名空间及配置参数确定所述语句类型;
根据所述语句类型确定对应的超时控制条件,并匹配该超时控制条件至所述语句。
进一步地,所述根据所述超时控制条件反馈语句执行结果至所述客户端,包括:
若满足所述超时控制条件,发送所述语句执行请求对应的语句执行结果至所述客户端;
若不满足所述超时控制条件,发送报错语句执行结果至所述客户端;其中,所述报错语句执行结果包括错误类型。
进一步地,所述发送报错语句执行结果至所述客户端,包括:
向所述数据库服务器发起查错请求,以获取所述语句对应的视图及事务;
根据所述视图及事务确定所述错误类型,并将所述错误类型发送至所述客户端。
第二方面,本申请提供一种SQL语句执行超时的控制装置,包括:
请求转发单元,用于从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
控制条件映射单元,用于根据语句类型将预设的超时控制条件映射至对应的语句;
执行结果反馈单元,用于根据所述超时控制条件反馈语句执行结果至所述客户端。
进一步地,所述请求转发单元,包括:
请求接收模块,用于启动第一线程,并利用所述第一线程接收所述语句执行请求;
请求发送模块,用于启动第二线程,并利用所述第二线程将所述语句执行请求发送至所述数据库服务器。
进一步地,所述控制条件映射单元,包括:
空间参数获取模块,用于访问持久层,并获取所述语句对应的命名空间及配置参数;
语句类型确定模块,用于根据所述命名空间及配置参数确定所述语句类型;
控制条件匹配模块,用于根据所述语句类型确定对应的超时控制条件,并匹配该超时控制条件至所述语句。
进一步地,所述执行结果反馈单元,包括:
正确反馈模块,用于当满足所述超时控制条件时,发送所述语句执行请求对应的语句执行结果至所述客户端;
错误反馈模块,用于若不满足所述超时控制条件,发送报错语句执行结果至所述客户端;其中,所述报错语句执行结果包括错误类型。
进一步地,所述错误反馈模块,包括:
视图事务获取模块,用于向所述数据库服务器发起查错请求,以获取所述语句对应的视图及事务;
错误类型发送模块,用于根据所述视图及事务确定所述错误类型,并将所述错误类型发送至所述客户端。
第三方面,本申请提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述SQL语句执行超时的控制方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述SQL语句执行超时的控制方法的步骤。
第五方面,本申请提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述SQL语句执行超时的控制方法的步骤。
针对现有技术中的问题,本申请提供的SQL语句执行超时的控制方法及装置,能够引入超时控制机制,防止线程资源的长时间过度占用,避免宕机;当超时情况发生时,能够在调用链上会向上层反馈“调用超时”的异常,从而提升用户体验,让用户能够及时获悉系统状态。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中SQL语句执行超时的控制方法的流程图;
图2为本申请实施例中实现请求转发的流程图;
图3为本申请实施例中超时控制条件映射至对应的语句的流程图;
图4为本申请实施例中反馈语句执行结果的流程图;
图5为本申请实施例中发送报错语句执行结果的流程图;
图6为本申请实施例中SQL语句执行超时的控制装置的结构图;
图7为本申请实施例中请求转发单元的结构图;
图8为本申请实施例中控制条件映射单元的结构图;
图9为本申请实施例中执行结果反馈单元的结构图;
图10为本申请实施例中错误反馈模块的结构图;
图11为本申请实施例中的电子设备的结构示意图;
图12为本申请实施例中的线程同步调用的示意图;
图13为本申请实施例中流程架构示意图;
图14为本申请实施例中解析过程示意图;
图15为本申请实施例中超时控制示意图;
图16为本申请实施例中抛出异常的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请提供的SQL语句执行超时的控制方法及装置,可用于金融领域,也可用于除金融领域之外的任意领域,本申请提供的SQL语句执行超时的控制方法及装置的应用领域不做限定。
本申请技术方案中对数据的获取、存储、使用及处理等均符合国家法律法规的相关规定。
需要说明的是,存在的超时机制如下:
1)JDBC规范里的超时机制
该规范定义了SQL语句执行的超时机制,但具体实现上无论是Oracle驱动包,还是Mysql驱动包都没有实现超时机制。
2)Spring事务中的超时机制
其是事务级的一种超时机制,该机制与本申请实施例中的超时机制的区别在于,其颗粒度是事务级的,即一个事务包含了1个或多个SQL语句,换而言之是多个SQL语句耗时的累计超时。退一步讲,即使一个事务只包含1个SQL语句,Spring的超时看起来和SQL语句超时等同了,然而Spring的超时是建立在前述的JDBC规范基础之上的,与本申请实施例中的不同。
3)微服务的熔断机制
在微服务架构中,服务之间的调用超时,并发过大都有可能导致服务的不可用,严重的会导致雪崩效应(即服务的提供方出现了问题,导致连锁的消费服务方也出现了问题,并且这种影响呈现放大和蔓延趋势)。为了避免这类情况的发生,熔断机制出现了。熔断的作用在于,在特定的环境下关掉当前线路,从而保护整个系统,当超过一定时间窗口后,再逐渐打开当前线路。
然而,以上的超时控制机制都有缺点:
第一,JDBC规范和Spring事务从上面的描述中不难发现,无论jdbc规范的超时机制,还是spring事务级的超时机制,都没有准确实现sql超时机制。所以实际的java程序中没人会使用他们。
第二,熔断机制用在微服务架构中,熔断机制一旦触发,则会立即失败这是与sql超时的区别之一;另外一个依然是粒度问题,熔断机制适用于微服务架构中服务。
其中,本申请实施例所涉及的术语至少包括如下:
①超时:同步调用会阻塞等待返回结果,如果被调用方长时间没有结果返回,则会导致调用方超时;
②JDBC:是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法;
③Spring:Java应用程序的一个开发框架;
④熔断:类似保险丝作用,在特定的环境下关掉当前线路,从而保护整个系统。
一实施例中,参见图1,为了能够引入超时控制机制,保证解决应用程序在线程级的异常超时问题,本申请提供一种SQL语句执行超时的控制方法,包括:
S101:从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
其中,参见图2,所述从客户端接收语句执行请求,并将所述语句执行请求发送至数据库,包括:启动第一线程,并利用所述第一线程接收所述语句执行请求(S201);启动第二线程,并利用所述第二线程将所述语句执行请求发送至所述数据库服务器(S202)。
为了使更好地理解本申请提供的方法,首先阐述以下原理:
原理1:线程同步技术。当Java应用(调用者A)通过Java语言连接数据库(JavaDataBase Connectivity,简称JDBC)执行SQL语句时(被调用者B),可以开启一个额外的线程来执行B的操作。假设调用者A的线程为1,被调用者的线程为2,其调用过程则如图12所示。
此实施例通过引入一个额外线程来执行SQL语句对应的操作,然后将调用者线程变为等待状态(等待一定的时间即超时时间)。调用者线程被唤醒分为两类情况:
其一,如果执行SQL语句未超时,则会被“被调用线程”唤醒;
其二,如果执行SQL语句超时,则调用者线程自己醒来。
调用线程醒来后判断前后的系统时间差,如果结果大于等于预设的超时时间,则说明是SQL语句执行超时了。
原理2:扩展SQL语句的提示
update/*+timeout(2000)*/smteller t set t.teller_name=t.teller_namewhere t.teller_no=?
如上,增加了timeout(2000)提示。当执行SQL语句时,发现配置了扩展的超时提示时,则启动超时机制。其中,2000是指2000毫秒,具体实施时,可以根据需要灵活设定,在此仅举一例说明。
原理3:其他配置方式
Figure BDA0003927461260000071
默认不超过1小时,也可以根据sqlid在系统中集中,动态地配置。
S102:根据语句类型将预设的超时控制条件映射至对应的语句;
可以理解的是,参见图13。
1)配置模块
1.1)sql配置格式,如下:
Figure BDA0003927461260000072
扩展了timeout关键字提示,供后面解析模块和超时控制使用。
1.2)xml配置格式,如下:
Figure BDA0003927461260000073
集中根据sqlid来进行配置,如getuser对应的sql的超时为5秒。
2)解析模块
参见图14,系统启动时,扫描sql配置文件和xml配置文件,获得哪些sql需要进行超时控制,超时时间多少。其中,在系统启动阶段,可以扫描并解析上表中配置文件(sql配置文件、xml配置文件),解析出sqlid(标识哪一条sql)和超时时间(阈值),并将timeout-setting结果保存至于系统内存中。这些结果可以作为控制模块(下个模块)的输入。
3)控制模块
通过额外开启一个线程,和调用线程之间同步协同来达到超时控制目的。
参见图15,在实现上采用代理模式。
其中,SqlExecutorProxy类是代理类负责超时控制,并开启额外线程启动SqlExecutorImpl类工作;SqlExecutorImpl负责具体SQL语句的执行。通过代理模式,对调用者而言保持了透明化,符合开闭原则。
S103:根据所述超时控制条件反馈语句执行结果至所述客户端。
可以理解的是,参见图16,经过上述步骤S101至步骤S103可以对超时响应进行控制。
综上所述,参见图16,整体流程如下:
s1:配置各SQL语句的预设超时时间,生成如:sql--xx.xml,timout-control.xml的配置文件。
s2:利用前述解析模块,解析出超时设置,形成:Map,sqlid为key,timeout为value。
s3:利用超时控制模块,将超时执行的SQL语句抛出异常。
其中,参见图3,所述根据语句类型将预设的超时控制条件映射至对应的语句,包括:访问持久层,并获取所述语句对应的命名空间及配置参数(S301);根据所述命名空间及配置参数确定所述语句类型(S302);根据所述语句类型确定对应的超时控制条件,并匹配该超时控制条件至所述语句(S303)。
需要说明的是,补充超时策略设置包含4种:1)应用级,该应用下的所有sql,2)模块级,比应用级粒度小,模块和sql的命名空间具有映射关系,命名空间和sqlid有映射关系,所以根据模块就可以确定某一个sql,3)sql级,具体的某一sql,可以用sqlid来标识;4)sql类型级,将sql分为select,update,delete,insert几类,通过sqlmap标签或解析sql即可识别sql类型。
其中,所述根据预设的timeout-setting(上面解析的)和策略信息映射到对应的语句,包括:访问持久层,并获取所述语句对应的命名空间、sqlid、标签信息;根据前面的timeout-setting、策略信息和具体sql语句进行匹配;若匹配成功则确定所述语句对应的超时控制条件。
其中,参见图4,所述根据所述超时控制条件反馈语句执行结果至所述客户端,包括:若满足所述超时控制条件,发送所述语句执行请求对应的语句执行结果至所述客户端(S401);若不满足所述超时控制条件,发送报错语句执行结果至所述客户端;其中,所述报错语句执行结果包括错误类型(S402)。
其中,参见图5,所述发送报错语句执行结果至所述客户端,包括:向所述数据库服务器发起查错请求,以获取所述语句对应的视图及事务(S501);根据所述视图及事务确定所述错误类型,并将所述错误类型发送至所述客户端(S502)。
其中,所述发送报错语句执行结果至所述客户端,包括:向所述数据库服务器发起查错请求,从诊断视图(包括事务、会话、SQL状态信息等)查询对应的所述SQL语句各类诊断、跟踪信息;根据所述诊断、跟踪信息定位、确定所述错误类型(如全表扫描导致的大量io,或锁等待等),并将所述错误类型发送至所述客户端。
从上述描述可知,本申请提供的SQL语句执行超时的控制方法,能够引入超时控制机制,防止线程资源的长时间过度占用,避免宕机;当超时情况发生时,能够在调用链上会向上层反馈“调用超时”的异常,从而提升用户体验,让用户能够及时获悉系统状态。
基于同一发明构思,本申请实施例还提供了一种SQL语句执行超时的控制装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于SQL语句执行超时的控制装置解决问题的原理与SQL语句执行超时的控制方法相似,因此SQL语句执行超时的控制装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
一实施例中,参见图6,为了能够引入超时控制机制,保证解决应用程序在线程级的异常超时问题,一种SQL语句执行超时的控制装置,包括:请求转发单元601、控制条件映射单元602及执行结果反馈单元603。
请求转发单元601,用于从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
控制条件映射单元602,用于根据语句类型将预设的超时控制条件映射至对应的语句;
执行结果反馈单元603,用于根据所述超时控制条件反馈语句执行结果至所述客户端。
一实施例中,参见图7,所述请求转发单元601,包括:请求接收模块701及请求发送模块702。
请求接收模块701,用于启动第一线程,并利用所述第一线程接收所述语句执行请求;
请求发送模块702,用于启动第二线程,并利用所述第二线程将所述语句执行请求发送至所述数据库服务器。
一实施例中,参见图8,所述控制条件映射单元602,包括:空间参数获取模块801、语句类型确定模块802及控制条件匹配模块803。
空间参数获取模块801,用于访问持久层,并获取所述语句对应的命名空间及配置参数;
语句类型确定模块802,用于根据所述命名空间及配置参数确定所述语句类型;
控制条件匹配模块803,用于根据所述语句类型确定对应的超时控制条件,并匹配该超时控制条件至所述语句。
一实施例中,参见图9,所述执行结果反馈单元603,包括:正确反馈模块901及错误反馈模块902。
正确反馈模块901,用于当满足所述超时控制条件时,发送所述语句执行请求对应的语句执行结果至所述客户端;
错误反馈模块902,用于若不满足所述超时控制条件,发送报错语句执行结果至所述客户端;其中,所述报错语句执行结果包括错误类型。
一实施例中,参见图10,所述错误反馈模块902,包括:视图事务获取模块1001及错误类型发送模块1002。
视图事务获取模块1001,用于向所述数据库服务器发起查错请求,以获取所述语句对应的视图及事务;
错误类型发送模块1002,用于根据所述视图及事务确定所述错误类型,并将所述错误类型发送至所述客户端。
从硬件层面来说,为了能够引入超时控制机制,保证解决应用程序在线程级的异常超时问题,本申请提供一种用于实现所述SQL语句执行超时的控制方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(Processor)、存储器(Memory)、通讯接口(Communications Interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述SQL语句执行超时的控制装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的SQL语句执行超时的控制方法的实施例,以及SQL语句执行超时的控制装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,SQL语句执行超时的控制方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图11为本申请实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,SQL语句执行超时的控制方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
S101:从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
S102:根据语句类型将预设的超时控制条件映射至对应的语句;
S103:根据所述超时控制条件反馈语句执行结果至所述客户端。
从上述描述可知,本申请提供的SQL语句执行超时的控制方法,能够引入超时控制机制,防止线程资源的长时间过度占用,避免宕机;当超时情况发生时,能够在调用链上会向上层反馈“调用超时”的异常,从而提升用户体验,让用户能够及时获悉系统状态。
在另一个实施方式中,SQL语句执行超时的控制装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置SQL语句执行超时的控制装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现SQL语句执行超时的控制方法的功能。
如图11所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的SQL语句执行超时的控制方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的SQL语句执行超时的控制方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
S102:根据语句类型将预设的超时控制条件映射至对应的语句;
S103:根据所述超时控制条件反馈语句执行结果至所述客户端。
从上述描述可知,本申请提供的SQL语句执行超时的控制方法,能够引入超时控制机制,防止线程资源的长时间过度占用,避免宕机;当超时情况发生时,能够在调用链上会向上层反馈“调用超时”的异常,从而提升用户体验,让用户能够及时获悉系统状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种SQL语句执行超时的控制方法,其特征在于,包括:
从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
根据语句类型将预设的超时控制条件映射至对应的语句;
根据所述超时控制条件反馈语句执行结果至所述客户端。
2.根据权利要求1所述的SQL语句执行超时的控制方法,其特征在于,所述从客户端接收语句执行请求,并将所述语句执行请求发送至数据库,包括:
启动第一线程,并利用所述第一线程接收所述语句执行请求;
启动第二线程,并利用所述第二线程将所述语句执行请求发送至所述数据库服务器。
3.根据权利要求1所述的SQL语句执行超时的控制方法,其特征在于,所述根据语句类型将预设的超时控制条件映射至对应的语句,包括:
访问持久层,并获取所述语句对应的命名空间及配置参数;
根据所述命名空间及配置参数确定所述语句类型;
根据所述语句类型确定对应的超时控制条件,并匹配该超时控制条件至所述语句。
4.根据权利要求1所述的SQL语句执行超时的控制方法,其特征在于,所述根据所述超时控制条件反馈语句执行结果至所述客户端,包括:
若满足所述超时控制条件,发送所述语句执行请求对应的语句执行结果至所述客户端;
若不满足所述超时控制条件,发送报错语句执行结果至所述客户端;其中,所述报错语句执行结果包括错误类型。
5.根据权利要求1所述的SQL语句执行超时的控制方法,其特征在于,所述发送报错语句执行结果至所述客户端,包括:
向所述数据库服务器发起查错请求,以获取所述语句对应的视图及事务;
根据所述视图及事务确定所述错误类型,并将所述错误类型发送至所述客户端。
6.一种SQL语句执行超时的控制装置,其特征在于,包括:
请求转发单元,用于从客户端接收语句执行请求,并将所述语句执行请求发送至数据库服务器;
控制条件映射单元,用于根据语句类型将预设的超时控制条件映射至对应的语句;
执行结果反馈单元,用于根据所述超时控制条件反馈语句执行结果至所述客户端。
7.根据权利要求6所述的SQL语句执行超时的控制装置,其特征在于,所述请求转发单元,包括:
请求接收模块,用于启动第一线程,并利用所述第一线程接收所述语句执行请求;
请求发送模块,用于启动第二线程,并利用所述第二线程将所述语句执行请求发送至所述数据库服务器。
8.根据权利要求6所述的SQL语句执行超时的控制装置,其特征在于,所述控制条件映射单元,包括:
空间参数获取模块,用于访问持久层,并获取所述语句对应的命名空间及配置参数;
语句类型确定模块,用于根据所述命名空间及配置参数确定所述语句类型;
控制条件匹配模块,用于根据所述语句类型确定对应的超时控制条件,并匹配该超时控制条件至所述语句。
9.根据权利要求6所述的SQL语句执行超时的控制装置,其特征在于,所述执行结果反馈单元,包括:
正确反馈模块,用于当满足所述超时控制条件时,发送所述语句执行请求对应的语句执行结果至所述客户端;
错误反馈模块,用于若不满足所述超时控制条件,发送报错语句执行结果至所述客户端;其中,所述报错语句执行结果包括错误类型。
10.根据权利要求6所述的SQL语句执行超时的控制装置,其特征在于,所述错误反馈模块,包括:
视图事务获取模块,用于向所述数据库服务器发起查错请求,以获取所述语句对应的视图及事务;
错误类型发送模块,用于根据所述视图及事务确定所述错误类型,并将所述错误类型发送至所述客户端。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述的SQL语句执行超时的控制方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述的SQL语句执行超时的控制方法的步骤。
13.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至5任一项所述的SQL语句执行超时的控制方法的步骤。
CN202211378816.9A 2022-11-04 2022-11-04 一种sql语句执行超时的控制方法及装置 Pending CN115617561A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211378816.9A CN115617561A (zh) 2022-11-04 2022-11-04 一种sql语句执行超时的控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211378816.9A CN115617561A (zh) 2022-11-04 2022-11-04 一种sql语句执行超时的控制方法及装置

Publications (1)

Publication Number Publication Date
CN115617561A true CN115617561A (zh) 2023-01-17

Family

ID=84876227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211378816.9A Pending CN115617561A (zh) 2022-11-04 2022-11-04 一种sql语句执行超时的控制方法及装置

Country Status (1)

Country Link
CN (1) CN115617561A (zh)

Similar Documents

Publication Publication Date Title
CN112835688A (zh) 分布式事务处理方法、设备及存储介质
EP4213037A1 (en) Data storage and reconciliation method and system
CN111679790A (zh) 远程软件开发存储空间分配方法及装置
CN114153856A (zh) 主机数据双写方法及装置
CN111930624B (zh) 测试链路报文数据处理方法及装置
CN111352719B (zh) 交易簿记服务数据处理方法、装置及系统
CN113050985A (zh) 前端工程依赖自动注册方法及装置
CN112559158A (zh) 微服务定时任务调度方法及装置
CN111767558A (zh) 数据访问监控方法、装置及系统
CN115617561A (zh) 一种sql语句执行超时的控制方法及装置
CN114285657B (zh) 防火墙安全策略变更验证方法及装置
CN113452776B (zh) PaaS平台服务调度方法、装置及PaaS平台
CN115421976A (zh) 异地备灾数据处理方法及装置
CN114840576A (zh) 数据标准匹配方法及装置
CN113434423A (zh) 接口测试方法及装置
CN112445414B (zh) 数据处理方法及装置
CN114416212A (zh) 移动端应用程序数据资源处理方法及装置
CN113158259A (zh) 区块链完整性验证方法及装置
CN113377385A (zh) 客户端自动部署方法及装置
CN111930690A (zh) 文件生成方法及装置
CN113515447A (zh) 系统自动化测试方法及装置
CN111953847A (zh) 客户端消息风险提醒方法、装置及系统
CN113342501B (zh) 系统故障处理方法及装置
CN115936652A (zh) 待办工作数据处理方法及装置
CN114637587A (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