CN112181948B - 数据库操作语句的处理方法、装置、电子设备和介质 - Google Patents
数据库操作语句的处理方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN112181948B CN112181948B CN202011069739.XA CN202011069739A CN112181948B CN 112181948 B CN112181948 B CN 112181948B CN 202011069739 A CN202011069739 A CN 202011069739A CN 112181948 B CN112181948 B CN 112181948B
- Authority
- CN
- China
- Prior art keywords
- sentences
- initial operation
- database
- service
- statement
- 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
- 238000003672 processing method Methods 0.000 title description 18
- 238000012545 processing Methods 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000012216 screening Methods 0.000 claims abstract description 68
- 238000012544 monitoring process Methods 0.000 claims description 41
- 230000015654 memory Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 20
- 238000001914 filtration Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 16
- 230000006854 communication Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000002787 reinforcement Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004083 survival effect Effects 0.000 description 3
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001178520 Stomatepia mongo Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种数据库操作语句的处理方法,包括:响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,m为正整数。从m条初始操作语句中筛选出可查杀操作语句,可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句和/或根据初始操作语句的执行性能标识筛选出的初始操作语句。对可查杀操作语句执行查杀操作,使可执行操作语句在指定数据库中执行,以获得业务处理请求的请求结果,可执行操作语句是m条初始操作语句中除可查杀操作语句之外的初始操作语句。本公开还提供了一种数据库操作语句的处理装置,电子设备以及计算机可读存储介质。本公开提供的方法和装置例如可以应用于金融领域或其他领域。
Description
技术领域
本公开涉及数据库技术领域,特别是涉及一种数据库操作语句的处理方法、装置、电子设备和介质。
背景技术
随着数字社会的到来,在众多应用场景中,针对海量数据的查询处理愈发频繁,数据库系统压力呈现爆发式增长的趋势,同时对数据库及时响应以及业务执行的连续性要求也更加地严格。尤其在有大量活跃用户量,用户高聚焦的业务场景(例如双十一、618等购物狂欢节秒杀、纪念币预约)中会经常发生数据库高并发,这就导致同一时间使用相同应用程序的用户数量非常多,进而造成同时涌入同一个数据库的操作语句数量激增,大量的操作语句在数据库中执行势必将对数据库的系统资源进行争抢,使得数据库在高负载的状态下,执行某些交易业务的操作语句所需要的关键系统资源得不到保障,严重影响交易业务的数据库响应时间,甚至导致数据库宕机无法执行任何交易。
相关技术也提供了一些资源限制解决方案,包括应用层面的资源管控措施和系统层面的资源管控措施。具体地,应用层面的实现包括基于应用层级的限流熔断机制,或者基于缓存服务的缓存策略,都是在数据库之外的宏观保护资源保护机制,无法做到交易级细粒度管控。系统层面的实现虽然支持整库级和用户级,但是目前来看很多应用大都使用同一用户进行数据库连接,同样也无法做到交易级细粒度管控。
因此,相关技术提供的上述资源限制解决方案,并不能从根本上解决数据库高并发状态下,数据库操作语句给数据库的系统资源带来的争抢压力,保护某些重要交易正常对外服务。同时也缺少数据库高压状态下的主动保护措施,从交易维度细粒度精准卸载资源压力保障数据库存活,避免影响全量客户和全量交易,因此也就不能有效地实现在数据库高并发压力下保障业务连续性,从根本上提高数据库可用性。
发明内容
为此,非常需要一种有效地能够在数据库高并发压力下保障业务连续性,从根本上实现提高数据库可用性,保障数据库不死的数据库保活方法,从交易维度细粒度精准卸载资源压力保障数据库存活,避免影响全量客户和全量交易,从根本上解决数据库高并发状态下,数据库操作语句给数据库的系统资源带来的争抢压力,以克服相关技术提供的解决方案不能从根本上解决数据库高并发状态下,操作语句给数据库的系统资源带来的争抢压力的技术问题,达到保障业务核心交易的正常性、平稳性以及连续性的技术效果。
在本公开的上下文中,本公开的实施方式期望提供一种数据库操作语句的处理方法、装置、电子设备和介质。
为实现上述目标,在本公开的一个方面中,提供了一种数据库操作语句的处理方法,包括:响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,m为正整数。从上述m条初始操作语句中筛选出可查杀操作语句,上述可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句和/或根据初始操作语句的执行性能标识筛选出的初始操作语句。对上述可查杀操作语句执行查杀操作,使可执行操作语句在上述指定数据库中执行,以获得上述业务处理请求的请求结果,其中,上述可执行操作语句是上述m条初始操作语句中除上述可查杀操作语句之外的初始操作语句。
根据本公开的实施例,上述从上述m条初始操作语句中筛选出可查杀操作语句包括:针对上述m条初始操作语句,获取与每条初始操作语句对应的业务属性标识,上述业务属性标识用于表征初始操作语句所要执行的业务是否为可被中断业务。基于上述与每条初始操作语句对应的业务属性标识,从上述m条初始操作语句中筛选出可查杀操作语句,其中,上述可查杀操作语句所要执行的业务为可被中断业务。
根据本公开的实施例,上述执行性能标识包括性能消耗标识,上述方法还包括:针对上述m条初始操作语句,获取与每条初始操作语句对应的性能消耗标识,上述性能消耗标识用于表征执行初始操作语句的性能消耗是否超过预设阈值。基于上述与每条初始操作语句对应的性能消耗标识,从上述m条初始操作语句中筛选出可查杀操作语句,执行上述可查杀操作语句的性能消耗超过上述预设阈值。
根据本公开的实施例,上述获取与每条初始操作语句对应的性能消耗标识包括:通过配置文件和数据库性能视图,获取与每条初始操作语句对应的性能消耗标识,上述配置文件是根据执行初始操作语句的性能消耗的历史数据配置的。或通过实时运算,获取与每条初始操作语句对应的性能消耗标识。
根据本公开的实施例,上述执行性能标识包括操作类型标识,上述方法还包括:获取预先配置的第一操作类型标识,其中,上述第一操作类型标识为可查杀操作语句对上述指定数据库的操作类型标识。针对上述m条初始操作语句,获取与每条初始操作语句对应的第二操作类型标识。检测上述m条初始操作语句中是否存在与上述第一操作类型标识一致的初始操作语句。若存在上述初始操作语句,则从上述m条初始操作语句中筛选出可查杀操作语句,其中,上述可查杀操作语句为与上述第一操作类型标识一致的初始操作语句。
根据本公开的实施例,上述执行性能标识包括执行参数标识,上述方法还包括:获取预先配置的第一执行参数标识,其中,上述第一执行参数标识为可查杀操作语句在上述指定数据库中的允许执行次数和/或允许执行时长。针对上述m条初始操作语句,获取与每条初始操作语句对应的第二执行参数标识,其中,上述第二执行参数标识为初始操作语句在上述指定数据库中的实际已执行次数和/或实际已执行时长。检测上述m条初始操作语句中是否存在实际已执行次数超过允许执行次数和/或实际已执行时长超过允许执行时长的初始操作语句。若存在上述初始操作语句,则从上述m条初始操作语句中筛选出可查杀操作语句,其中,上述可查杀操作语句为实际执行次数超过允许执行次数和/或实际执行时长超过允许执行时长的初始操作语句。
根据本公开的实施例,上述方法还包括:在对上述可查杀操作语句执行查杀操作的情况下,获取上述可查杀操作语句在上述指定数据库中的实际已执行次数和/或实际已执行时长。根据上述实际已执行次数和/或实际已执行时长,确定可查杀操作语句在上述指定数据库中的允许执行次数和/或允许执行时长。
根据本公开的实施例,在从上述m条初始操作语句中筛选出可查杀操作语句之前,上述方法还包括:针对上述指定数据库的系统资源,获得上述系统资源的实际负载,其中,上述系统资源包括处理器、内存以及输入输出系统。获取上述系统资源的负载阈值。检测上述实际负载是否超过上述负载阈值。若超过上述负载阈值,则确定从上述m条初始操作语句中筛选出可查杀操作语句。
根据本公开的实施例,上述方法还包括:若超过上述负载阈值,则生成告警日志文件。
根据本公开的实施例,上述获得上述系统资源的实际负载包括:按照预先设定的监控策略,对上述系统资源的运行参数执行监控操作,以获得上述系统资源的实际负载,其中,上述监控策略包括监控时间范围和/或监控频率。
根据本公开的实施例,上述方法还包括:获取对上述可查杀操作语句执行查杀操作的时间戳。基于上述查杀操作的时间戳,生成查杀日志文件。
为实现上述目标,在本公开的另一个方面中,提供了一种数据库操作语句的处理装置,包括:操作语句获得模块,用于响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,m为正整数。操作语句筛选模块,用于从上述m条初始操作语句中筛选出可查杀操作语句,上述可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句和/或根据初始操作语句的执行性能标识筛选出的初始操作语句。操作语句处理模块,用于对上述可查杀操作语句执行查杀操作,使可执行操作语句在上述指定数据库中执行,以获得上述业务处理请求的请求结果,上述可执行操作语句是上述m条初始操作语句中除上述可查杀操作语句之外的初始操作语句。
根据本公开的实施例,上述操作语句筛选模块包括:业务属性标识获取子模块,用于针对上述m条初始操作语句,获取与每条初始操作语句对应的业务属性标识,其中,上述业务属性标识用于表征初始操作语句所要执行的业务是否为可被中断业务。第一操作语句筛选子模块,用于基于上述与每条初始操作语句对应的业务属性标识,从上述m条初始操作语句中筛选出可查杀操作语句,其中,上述可查杀操作语句所要执行的业务为可被中断业务。
根据本公开的实施例,上述执行性能标识包括性能消耗标识,上述操作语句筛选模块还包括:性能消耗标识获取子模块,用于针对上述m条初始操作语句,获取与每条初始操作语句对应的性能消耗标识,上述性能消耗标识用于表征执行初始操作语句的性能消耗是否超过预设阈值。第二操作语句筛选子模块,用于基于上述与每条初始操作语句对应的性能消耗标识,从上述m条初始操作语句中筛选出可查杀操作语句,执行上述可查杀操作语句的性能消耗超过上述预设阈值。
根据本公开的实施例,上述性能消耗标识获取子模块包括:第一获取单元,用于通过配置文件和数据库性能视图,获取与每条初始操作语句对应的性能消耗标识,其中,上述配置文件是根据执行初始操作语句的性能消耗的历史数据配置的。或第二获取单元,用于通过实时运算,获取与每条初始操作语句对应的性能消耗标识。
根据本公开的实施例,上述执行性能标识包括操作类型标识,上述操作语句筛选模块还包括:第一操作类型标识获取子模块,用于获取预先配置的第一操作类型标识,其中,上述第一操作类型标识为可查杀操作语句对上述指定数据库的操作类型标识。第二操作类型标识获取子模块,用于针对上述m条初始操作语句,获取与每条初始操作语句对应的第二操作类型标识。第一检测子模块,用于检测上述m条初始操作语句中是否存在与上述第一操作类型标识一致的初始操作语句。第三操作语句筛选子模块,用于若存在上述初始操作语句,则从上述m条初始操作语句中筛选出可查杀操作语句,其中,上述可查杀操作语句为与上述第一操作类型标识一致的初始操作语句。
根据本公开的实施例,上述执行性能标识包括执行参数标识,上述操作语句筛选模块还包括:第一执行参数标识获取子模块,用于获取预先配置的第一执行参数标识,其中,上述第一执行参数标识为可查杀操作语句在上述指定数据库中的允许执行次数和/或允许执行时长。第二执行参数标识获取子模块,用于针对上述m条初始操作语句,获取与每条初始操作语句对应的第二执行参数标识,其中,上述第二执行参数标识为初始操作语句在上述指定数据库中的实际已执行次数和/或实际已执行时长。第二检测子模块,用于检测上述m条初始操作语句中是否存在实际已执行次数超过允许执行次数和/或实际已执行时长超过允许执行时长的初始操作语句。第四操作语句筛选子模块,用于若存在上述初始操作语句,则从上述m条初始操作语句中筛选出可查杀操作语句,其中,上述可查杀操作语句为实际执行次数超过允许执行次数和/或实际执行时长超过允许执行时长的初始操作语句。
根据本公开的实施例,上述操作语句筛选模块还包括:第三执行参数标识获取子模块,用于在对上述可查杀操作语句执行查杀操作的情况下,获取上述可查杀操作语句在上述指定数据库中的实际已执行次数和/或实际已执行时长。第一执行参数确定子模块,用于根据上述实际已执行次数和/或实际已执行时长,确定可查杀操作语句在上述指定数据库中的允许执行次数和/或允许执行时长。
根据本公开的实施例,在从上述m条初始操作语句中筛选出可查杀操作语句之前,上述装置还包括:实际负载获取模块,用于针对上述指定数据库的系统资源,获得上述系统资源的实际负载,其中,上述系统资源包括处理器、内存以及输入输出系统。负载阈值获取模块,用于获取上述系统资源的负载阈值。负载检测模块,用于检测上述实际负载是否超过上述负载阈值。筛选确定模块,用于若超过上述负载阈值,则确定从上述m条初始操作语句中筛选出可查杀操作语句。
根据本公开的实施例,上述装置还包括:告警日志文件生成模块,用于若超过上述负载阈值,则生成告警日志文件。
根据本公开的实施例,上述实际负载获取模块用于按照预先设定的监控策略,对上述系统资源的运行参数执行监控操作,以获得上述系统资源的实际负载,上述监控策略包括监控时间范围和/或监控频率。
根据本公开的实施例,上述装置还包括:时间戳获取模块,用于获取对上述可查杀操作语句执行查杀操作的时间戳。查杀日志文件生成模块,用于基于上述查杀操作的时间戳,生成查杀日志文件。
为实现上述目标,在本公开的另一方面中,提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的数据库操作语句的处理方法。
为实现上述目标,在本公开的另一方面中,提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的数据库操作语句的处理方法。
为实现上述目标,在本公开的另一方面中,提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的数据库操作语句的处理方法。
本公开提供的针对数据库操作语句的处理方法,一方面,可以从操作语句所要执行的业务属性层面,对数据库操作语句进行筛选,也可以从操作语句的执行性能层面,对数据库操作语句进行筛选,还可以从操作语句所要执行的业务属性和操作语句的执行性能两个层面,对数据库操作语句进行筛选,全方位多角度地精准定位数据库操作语句对数据库的系统资源的影响。另一方面,对筛选出的可查杀操作语句执行查杀操作,使得有限的数据库系统资源提供给可执行操作语句,可以避免在数据库中既执行可查杀操作语句,又执行可执行操作语句对数据库系统资源的争抢,从根本上对可查杀操作语句的执行对数据库资源的侵占进行限制,平衡数据库系统的资源开销,使得可执行操作语句在数据库中执行的平稳性和连续性,实现数据库的主动保活加固,降低数据库在高并发场景中宕机的可能性,提升数据库的可用性。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性示出了适用于本公开实施例的可以应用数据库操作语句的处理方法及其装置的系统架构;
图2示意性示出了适用于本公开实施例的可以应用数据库操作语句的处理方法及其装置的应用场景;
图3示意性示出了根据本公开实施例的数据库操作语句的处理方法的流程图;
图4示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图;
图5示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图;
图6示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图;
图7示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图;
图8示意性示出了根据本公开实施例的数据库操作语句的处理装置的框图;
图9示意性示出了根据本公开另一实施例的数据库操作语句的处理装置的框图;
图10示意性示出了根据本公开另一实施例的数据库操作语句的处理装置的框图;
图11示意性示出了根据本公开另一实施例的数据库操作语句的处理装置的框图;
图12示意性示出了根据本公开实施例的适于实现上文描述的数据库操作语句的处理方法的计算机可读存储介质产品的示意图;以及
图13示意性示出了根据本公开实施例的适于实现上文描述的数据库操作语句的处理方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
应该注意的是,附图并未按比例绘制,并且出于说明目的,在整个附图中类似结构或功能的元素通常用类似的附图标记来表示。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据库操作语句的处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
随着移动终端的不断普及,移动终端用户的数量不断激增,目前,智能终端用户的数量已经达到了亿级单位甚至更多。基于移动客户端开发的应用程序(Application,简称为APP)被赋予日渐丰富的功能,使得越来越多的用户会选择在移动客户端上安装不同功能的APP来实现工作、生活、娱乐等各方面的特定操作。数据库的高并发查询导致同一时间使用相同APP的用户数量非常多,进而造成同时进入同一数据库的操作语句的数量很容易达到一个非常大的值。随着系统访问量的增加,每秒查询率(Query Per Second,QPS)越来越高,数据库磁盘容量不断增加,一般数据库服务器的QPS在800-1200的时候性能最佳,当超过2000的时候SQL就会变得很慢并且很容易被请求打死。
通过缓存服务的方式对数据库高并发下操作语句的执行进行优化存在如下诸多问题:缓存服务的成本非常高;单纯地通过缓存服务提升数据库高并发下操作语句的执行的程度有限;且高并发下操作语句涌入数据库时会导致数据库出现卡顿,进而影响用户操作应用程序的体验。因此,通过缓存服务并不能从根本上解决数据库高并发下操作语句的执行给数据库带来的资源消耗压力,不能有效地在数据库高并发压力下提高数据库可用性。
有鉴于此,本公开提供的数据库操作语句的处理方法,包括操作语句筛选阶段和操作语句处理阶段。在操作语句筛选阶段,首先响应于业务处理请求,获得向指定数据库发送的m(m为正整数)条初始操作语句,然后从m条初始操作语句中筛选出可查杀操作语句,可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句和/或根据初始操作语句的执行性能标识筛选出的初始操作语句。在操作语句处理阶段,对可查杀操作语句执行查杀操作,使可执行操作语句在指定数据库中执行,以获得业务处理请求的请求结果,可执行操作语句是m条初始操作语句中除可查杀操作语句之外的初始操作语句。
本公开提供的数据库操作语句的处理方法,在数据库运行期间,根据初始操作语句所要执行业务的业务属性标识和/或初始操作语句的执行性能标识,从m条初始操作语句中筛选出可查杀操作语句,可以从操作语句所要执行的业务属性层面,对数据库操作语句进行筛选,也可以从操作语句的执行性能层面,对数据库操作语句进行筛选,还可以从操作语句所要执行的业务属性和操作语句的执行性能两个层面,对数据库操作语句进行筛选,全方位多角度地精准定位数据库操作语句对数据库的系统资源的影响。对筛选出的可查杀操作语句执行查杀操作,使得有限的数据库系统资源提供给可执行操作语句,可以避免在数据库中既执行可查杀操作语句,又执行可执行操作语句对数据库系统资源的争抢,从根本上对可查杀操作语句的执行对数据库资源的侵占进行限制,平衡数据库系统的资源开销,使得可执行操作语句在数据库中执行的平稳性、连续性,可以实现数据库的主动保活加固,降低数据库在高并发场景中宕机的可能性,提升数据库的可用性。
需要说明的是,本公开提供的数据库操作语句的处理方法和装置可用于金融领域中,也可用于除金融领域之外的任意领域中。因此对本公开所提供的数据库操作语句的处理方法及其装置的应用领域不做限定。
图1示意性示出了适用于本公开实施例的可以应用数据库操作语句的处理方法及其装置的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105、106。网络104用以在终端设备101、102、103和服务器105、106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105、106交互以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件、网上银行等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105例如可以是数据库服务器,可以为终端设备101、102、103上的客户应用程序提供数据服务。可以提供的功能包括:数据库管理功能,即系统配置与管理、数据存取与更新管理、数据完整性管理和数据安全性管理。数据库的查询和操纵功能,即数据库检索和修改。数据库维护功能,即数据导入/导出管理,数据库结构维护、数据恢复功能和性能监测。数据库并行运行功能,即处理在同一时间,访问数据库的多个事件的同时发生。
服务器106例如可以是提供各种监控功能和/或管理功能的服务器,通过对服务器105提供监控和管理功能,对其运行状态进行监控,以获得与运行状态相关的监控数据,并筛选出可以被查杀的操作语句。通过对终端设备101、102、103上的客户应用程序提供配置管理功能,来对应用程序访问数据库所需要消耗的数据库资源量进行配置和修改。
需要说明的是,本公开的实施例所提供的数据库操作语句的处理方法一般可以由服务器106执行。相应地,本公开的实施例所提供的数据库操作语句的处理装置一般可以设置于服务器106中。本公开的实施例所提供的数据库操作语句的处理方法也可以由不同于服务器106且能够与服务器106通信的其他服务器执行。相应地,本公开的实施例所提供的数据库操作语句的处理装置也可以设置于不同于服务器106且能够与服务器106通信的其他服务器中。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实际业务中交易处理的实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了适用于本公开实施例的可以应用数据库操作语句的处理方法及其装置的应用场景。
如图2所示,该应用场景200可以是数据库的高并发场景。在该应用场景200中,终端设备210的应用程序220接收到来自用户发送的业务处理请求之后,向数据库240发送操作语句230,以获得与操作语句230对应的执行结果250。可以理解的是,高并发意味着同一时间涌入数据库240的操作语句数量较多,已经出现对数据库240资源的争抢情形。具体地,终端设备210可以包含n(n为大于等于2的整数)台终端设备,分别为终端设备A1,终端设备A2,...,终端设备An。n台终端设备通过应用程序220可以向数据库240发送m(m为正整数,且m大于等于n)条操作语句,分别为操作语句B1,操作语句B2,...,操作语句Bm。每条执行成功的操作语句230可以从数据库240中获取对应的执行结果250,分别为执行结果E1,执行结果E2,...,执行结果Em。且执行结果E1与操作语句B1对应,执行结果E2与操作语句B2对应,...,执行结果Em与操作语句Bm对应。
在具体实施时,在终端设备A1的应用程序220接收到来自用户发送的业务处理请求之后,可以向数据库240发送操作语句B1,以期获得与操作语句B1对应的执行结果E1。在终端设备A2的应用程序220接收到来自用户发送的业务处理请求之后,向数据库240发送操作语句B2,以期获得与操作语句B2对应的执行结果E2。以此类推,在终端设备An的应用程序220接收到来自用户发送的业务处理请求之后,向数据库240发送操作语句Bm,以期获得与操作语句Bm对应的执行结果Em。由于来自多台终端设备A(A1,A2,...,An)安装的同一应用程序220的不同业务处理请求,可以是与执行核心业务相关的业务处理请求,即操作语句230中包含有用于执行核心业务的操作语句,也可以是与执行非核心业务相关的业务处理请求,即操作语句230中包含有用于执行非核心业务的操作语句,且m越大,代表高并发的可能性越大,执行m条不同的操作语句时,对数据库有限资源的争抢就越发激烈,甚至出现用于执行核心业务的操作语句无法执行的情况。此时数据库面临在高并发的场景中提高可用性的严峻挑战。
需要说明的是,图2所示的终端设备210例如可以是如图1所示的终端设备101、102、103中的任意一种终端设备,图2所示的数据库240可以是仅存储和管理应用程序220的各种数据的数据库,也可以是既存储和管理应用程序220的各种数据,又存储和管理其他应用程序的各种数据的数据库。若在同一时间数据库240允许一个应用程序单独访问,则数据库240高并发仅与单独访问的应用程序220有关。若在同一时间数据库240允许多个应用程序同时访问,则数据库240高并发与同时访问的多个应用程序有关。在本公开的上下文中,将针对应用程序的一个数据库来说明,在高并发情况下,是如果对数据库操作语句进行处理的。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
图3示意性示出了根据本公开实施例的数据库操作语句的处理方法的流程图。如图3所示,该方法300可以包括操作S310~操作S330。
在操作S310,响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,m为正整数。
根据本公开的实施例,指定数据库(Database,DB)可以将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。可以管理和存储与一个应用程序相关的各种数据,也可以管理和存储与多个应用程序相关的各种数据,以便根据接收到的操作语句,返回执行结果。指定数据库可以是用表来管理数据,且可以同时存储多个表的关系型数据库(Relational Database,RDB),在指定数据库允许一个应用程序单独访问的情况下,m条初始操作语句是通过一个应用程序发送的,这一个应用程序可以是安装在多个终端设备上的。在指定数据库允许多个应用程序同时访问的情况下,m条初始操作语句是通过多个应用程序发送的,这多个应用程序可以是安装在多个终端设备上的。客户端使用指定数据库的应用程序,通过向指定数据库发送SQL语句(告诉指定数据库需要什么样的数据),从指定数据库中读取客户端请求的数据并将取出的数据发送到客户端。
在本公开的上下文中,数据库操作语句可以是SQL语句,SQL语句是用来操作关系型数据库的标准语言,SQL用关键字、表名、列名等组合而成的一条SQL语句来描述操作的内容。关键字是指那些含义或使用方法已事先定义好的英语单词,存在包含“对表进行查询”或者“参考这个表”等各种意义的关键字。SQL语句的主要功能是与各种数据库建立联系,包括但不限于数据定义,数据查询,数据操作以及数据控制。根据对用来管理数据库的计算机系统,即数据库管理系统(Database Management System,DBMS)赋予的指令种类的不同,SQL语句可以分为以下三类。数据定义语言(Data Definition Language,DDL)用来创建或者删除存储数据用的数据库以及数据库中的表等对象。数据操作语言(Data ManipulationLanguage,DML)用来查询或者变更表中的记录。数据控制语言(Data Control Language,DCL)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对RDBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定,本公开对SQL的类型不做限定。
在操作S320,从m条初始操作语句中筛选出可查杀操作语句。
在本公开的上下文中,可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句和/或根据初始操作语句的执行性能标识筛选出的初始操作语句。
作为一种可选的实施例,可以从操作语句所要执行的业务属性层面,根据初始操作语句所要执行业务的业务属性标识,对初始操作语句进行筛选,以筛选出可查杀操作语句。
根据本公开的实施例,业务属性标识用于表征该业务的重要程度。一般情况下,重要程度越高,代表该业务在业务系统中的核心程度。与重要程度低的业务相比,重要程度高的业务是业务系统的核心业务,一般不可以中断的处理,而重要程度低的业务是业务系统的非核心业务,一般可以中断的处理。因此,在实际处理业务的时候,重要程度高的业务具有更高的处理优先级。
具体实施时,初始操作语句所要执行业务的业务属性标识可以相同,也可以不同。非核心业务的操作语句的执行与核心业务的操作语句的执行将对数据库资源进行争抢,尤其在业务处理所需要的资源有限的情况下,非核心业务的执行影响核心业务的执行,甚至导致核心业务无法平稳持续的执行,而核心业务作为比非核心业务更为重要的业务,在本公开中需要优先保障不可以中断的核心业务的执行,而可以中断的非核心业务的执行次之。需要说明的是,在具体实施时,根据业务系统处理业务的不同,可以有不同的业务属性标识划分标准。
作为一种可选的实施例,根据实际业务类型的不同,可以有不同的划分依据来确定业务属性。划分依据根据具体情况,自行设定,例如包括但不限于业务的类型、业务的响应时限以及业务的重要程度。核心业务可以是应用程序提供的主要业务,重要性高的业务,核心业务可以是应用程序提供的次要业务,重要性低业务。以应用程序为金融机构的网上银行为例,核心业务可以是银行系统的主要业务,可以包括但不限于包括:存款、贷款、支付结算、银行卡。非核心业务可以是银行系统的次要业务,可以包括但不限于表外业务、结息业务。本公开在数据库高并发情况下,先保证核心业务的操作语句执行,将非核心业务的操作语句查杀。在数据库高并发情况下,可以预先配置多个核心业务对应的优先级,在资源有限时,优先级高的核心业务得以优先执行。例如,以核心业务为转账业务和存款业务为例,可以设置存款业务的优先级高于转账业务的优先级。
需要说明的是,核心与非核心是相对概念,并不具有绝对意义。核心业务和非核心业务也可能代表不同的含义,本公开对此不做限定。
作为一种可选的实施例,可以从操作语句在数据库中的执行性能层面,根据初始操作语句的执行性能标识,对初始操作语句进行筛选,以筛选出可查杀操作语句。
根据本公开的实施例,操作语句的执行性能标识用于表征操作语句性能消耗占比是否在指定数据库的前列。
作为一种可选的实施例,可以从操作语句所要执行的业务属性和操作语句的执行性能两个层面,根据初始操作语句所要执行业务的业务属性标识以及初始操作语句的执行性能标识,对初始操作语句进行筛选,以筛选出可查杀操作语句。
在操作S330,对可查杀操作语句执行查杀操作,使可执行操作语句在指定数据库中执行,以获得业务处理请求的请求结果。
根据本公开的实施例,可执行操作语句是m条初始操作语句中除可查杀操作语句之外的初始操作语句。对筛选出的可查杀操作语句执行查杀操作,例如可以是通过SQL拼写生成查杀语句,输出查杀命令文件,来结束执行该操作语句的进程。使得有限的数据库系统资源提供给可执行操作语句,可以避免在数据库中既执行可查杀操作语句,又执行可执行操作语句对数据库系统资源的争抢,从根本上对可查杀操作语句的执行对数据库资源的侵占进行限制,平衡数据库系统的资源开销,使得可执行操作语句在数据库中执行的平稳性、连续性,并因此可以实现数据库的主动保活加固,降低数据库在高并发场景中宕机的可能性,提升数据库的可用性。
在本公开的上下文中,可查杀操作语句是用于执行可中断业务的、可以被查杀、不允许在指定数据中执行的初始操作语句,相对应地,可执行操作语句是用于执行不可中断业务的、不可以被查杀、允许在指定数据库中执行的初始操作语句。
通过本公开的实施例,一方面,既可以从操作语句所要执行的业务属性层面,对数据库操作语句进行筛选,也可以从操作语句的执行性能层面,对数据库操作语句进行筛选,还可以从操作语句所要执行的业务属性和操作语句的执行性能两个层面,对数据库操作语句进行筛选,全方位多角度地精准定位数据库操作语句对数据库的系统资源的影响。另一方面,对筛选出的可查杀操作语句执行查杀操作,使得有限的数据库系统资源提供给可执行操作语句,可以避免在数据库中既执行可查杀操作语句,又执行可执行操作语句对数据库系统资源的争抢,保护某些重要交易正常对外服务。同时也缺少数据库高压状态下的主动保护措施,从交易维度细粒度精准卸载资源压力保障数据库存活,避免影响全量客户和全量交易,从根本上对可查杀操作语句的执行对数据库资源的侵占进行限制,平衡数据库系统的资源开销,使得可执行操作语句在数据库中执行的平稳性、连续性,并因此可以实现数据库的主动保活加固,降低数据库在高并发场景中宕机的可能性,提升数据库的可用性。
图4示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图。如图4所示,前述操作S320(从m条初始操作语句中筛选出可查杀操作语句)可以包括操作S421~操作S422。
在操作S421,针对m条初始操作语句,获取与每条初始操作语句对应的业务属性标识。
在本公开的上下文中,业务属性标识用于表征初始操作语句所要执行的业务是否为可被中断业务。业务属性标识可以预先配置在配置文件中,存储在服务器,或者云端。配置文件中记录有核心业务的业务属性标识和非核心业务的业务属性标识,与核心业务相关的具体业务以及与非核心业务相关的具体业务。
在操作S422,基于与每条初始操作语句对应的业务属性标识,从m条初始操作语句中筛选出可查杀操作语句。在本公开的上下文中,可查杀操作语句所要执行的业务为可被中断业务。
根据本公开的实施例,从业务类型的层面,从初始操作语句中筛选出可查杀操作语句,可以精准监控定位数据库的操作语句对数据库资源的影响,使得在高并发场景中,可执行操作语句所需的关键资源得到保障,不被可查杀操作语句的执行所占用和争抢,缩短不可中断的核心业务的执行时间,提高核心业务运行的稳定性和持续性。
通过本公开的实施例,通过用于表征初始操作语句所要执行的业务是否为可被中断业务的业务属性标识,可以方便、快捷且准确地从m条初始操作语句中筛选出用于执行可被中断业务的初始操作语句,即可查杀操作语句,筛选效果好,且筛选效率高。
根据本公开的实施例,执行性能关注的是逻辑读、数据库执行时间以及执行次数等参数综合评估的性能。执行性能标识可以包括性能消耗标识、操作类型标识以及执行参数标识中的一个或多个。性能消耗标识用于表征执行初始操作语句的性能消耗是否超过预设阈值。操作类型标识用于表征操作语句对指定数据库的操作类型标识。执行参数标识用于表征操作语句在指定数据库中的执行次数和/或执行时长。
作为一种可选的实施例,在执行性能标识包括性能消耗标识的情况下,方法还包括:针对m条初始操作语句,获取与每条初始操作语句对应的性能消耗标识,其中,性能消耗标识用于表征执行初始操作语句的性能消耗是否超过预设阈值。基于与每条初始操作语句对应的性能消耗标识,从m条初始操作语句中筛选出可查杀操作语句,其中,执行可查杀操作语句的性能消耗超过预设阈值。
作为一种可选的实施例,获取与每条初始操作语句对应的性能消耗标识包括:通过配置文件和数据库性能视图,获取与每条初始操作语句对应的性能消耗标识,配置文件根据执行初始操作语句的性能消耗的历史数据配置。或通过实时运算,获取与每条初始操作语句对应的性能消耗标识。数据库性能视图是用于查看SQL语句性能的视图,例如Oracle里面的v$sql和v$sqlarea。本领域技术人员可以根据实际需要选择相应地数据库性能视图,通过查询数据库性能视图,可以获得SQL语句性能,此处不再赘述。
作为一种可选的实施例,在执行性能标识包括操作类型标识的情况下,方法还包括:获取预先配置的第一操作类型标识,第一操作类型标识为可查杀操作语句对指定数据库的操作类型标识。针对m条初始操作语句,获取与每条初始操作语句对应的第二操作类型标识。检测m条初始操作语句中是否存在与第一操作类型标识一致的初始操作语句。若存在,则从m条初始操作语句中筛选出可查杀操作语句,可查杀操作语句为与第一操作类型标识一致的初始操作语句。
作为一种可选的实施例,在执行性能标识包括执行参数标识的情况下,方法还包括:获取预先配置的第一执行参数标识,第一执行参数标识为可查杀操作语句在指定数据库中的允许执行次数和/或允许执行时长。针对m条初始操作语句,获取与每条初始操作语句对应的第二执行参数标识,第二执行参数标识为初始操作语句在指定数据库中的实际已执行次数和/或实际已执行时长。检测m条初始操作语句中是否存在实际已执行次数超过允许执行次数和/或实际已执行时长超过允许执行时长的初始操作语句。若存在,则从m条初始操作语句中筛选出可查杀操作语句,可查杀操作语句为实际执行次数超过允许执行次数和/或实际执行时长超过允许执行时长的初始操作语句。
作为一种可选的实施例,方法还包括:在对可查杀操作语句执行查杀操作的情况下,获取可查杀操作语句在指定数据库中的实际已执行次数和/或实际已执行时长。根据实际已执行次数和/或实际已执行时长,确定可查杀操作语句在指定数据库中的允许执行次数和/或允许执行时长。
为了实现执行参数标识的动态更新,使之与操作语句在数据库中的实际执行情况相匹配,在本公开中可以根据数据库的运行情况和业务系统的实际需求进行维护和优化。
具体实施时,可以根据可查杀操作语句在数据库中实际执行的次数和/或实际执行的时长,对该可查杀操作语句在指定数据库中允许执行的次数和/或允许执行的时长做相应地调整,以实现动态更新,使该可查杀操作语句在指定数据库中允许执行的次数和/或允许执行的时长更加符合历史运行情况,可以提高执行参数标识的准确性和实时性。
图5示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图。该方法500除了可以包括如图3所示的操作S310~操作S330之外,还可以包括如图5所示的操作S510~操作S540。
在操作S510,针对指定数据库的系统资源,获得系统资源的实际负载。在操作S520,获取系统资源的负载阈值。
根据本公开的实施例,负载即执行的各种任务,包括所有正在运行的系统、系统服务、网络传输和软件。服务器的性能与其关键资源被占用的情况相关。具体地,可以由服务器硬件决定,也可以由数据库软件决定,还可以由服务器硬件和数据库软件协同决定。服务器硬件可以包括但不限于处理器、显卡、主板、内存、网络宽带、以及硬盘。其中,处理器可以决定运行速度,显卡可以决定画面显示效果的好坏和显示速度,主板可以决定运算速度和稳定性,内存越大性能越好,硬盘可以决定读出数据、存入数据的速度和大小。数据库软件可以包括但不限于Mysql、PostgreSQL,Microsoft SQL Server,Oracle数据库,MongoDB,本公开实施例对具体的数据库软件不做限定。实际负载为执行数据库操作语句所需要系统资源,可以包括但不限于中央处理器(Central Processing Unit,CPU)、内存、输入/输出(Input/Output,I/O)、数据库连接等关键资源。实际负载用于表征指定数据库实际被占用的数据库资源量。
根据本公开的实施例,负载阈值用于表征数据库高并发相关的系统资源的负载上限,用于表征指定数据库允许被占用的数据库资源量。可以根据数据库的历史运行指标数据和高并发情况下的历史负载情况来设定。历史运行指标数据可以包括但不限于响应时间(Response Time,RT),吞吐量(Throughput),每秒查询率(Query Per Second,QPS)以及并发用户数。RT指系统对请求作出响应的时间。吞吐量是指系统在单位时间内处理请求的数量。并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。针对不同的指标,可以为应用程序设置预计需要消耗的数据库资源量,可以为数据库设置允许消耗的数据库资源量,即预设阈值,若超过该预设阈值,则表明达到数据库高压力状态,需要对数据库的访问量执行限制措施。
在具体实施时,负载阈值可以人为设定,也可以根据指定数据库的历史情况所表征出来的负载承受能力确定。负载阈值可以是针对服务器的不同硬件分别设定的负载阈值,也可以是对服务器的不同硬件整体设定的负载阈值。若实际负载超过负载阈值,则表明服务器当前的关键资源被占用达到上限,对数据库处理能力的需求已经超过数据库的实际处理能力。
在操作S530,检测实际负载是否超过负载阈值。若实际负载超过负载阈值,则执行操作S540,确定从m条初始操作语句中筛选出可查杀操作语句。相应地,若实际负载未超过负载阈值,可以返回操作S510,以针对指定数据库的系统资源,再次获得系统资源的实际负载。可选地,若实际负载未超过负载阈值,也可以不对获得到的m条初始操作语句进行筛选,使得m条初始操作语句全部都在指定数据库中执行,获得指定数据库返回的与m条初始操作语句对应的执行结果。
作为一种可选的实施例,若实际负载超过负载阈值,则可以生成告警日志文件,以记录系统资源的实际负载情况。
通过本公开的实施例,在实际负载达到负载阈值的情况下,确定从m条初始操作语句中筛选出可查杀操作语句,而在实际负载未达到负载阈值的情况下,可以针对指定数据库的系统资源,再次获得系统资源的实际负载,以实现对实际负载的实时获取,也可以不对获得到的m条初始操作语句进行筛选,使得m条初始操作语句全部都在指定数据库中执行。可以在指定数据库达到高负载时,及时对可中断业务的操作语句进行筛选,保证核心业务的持续执行不受影响,可以避免数据库由于高并发导致服务器宕机、核心业务中断造成的经济损失、客户流失等一系列技术问题,为数据库高并发提供了一种保活限流的应对措施,并达到提高数据库的可用性的技术效果。
作为一种可选的实施例,前述操作S510可以包括:按照预先设定的监控策略,对系统资源的运行参数执行监控操作,以获得系统资源的实际负载,其中,监控策略包括监控时间范围和/或监控频率。
根据本公开的实施例,数据库的负载可以按照预先设定的监控策略,通过监控获得,即监控数据库运行的服务器的运行情况。为了节约监控资源,对指定数据库的运行状态执行有针对性的监控,本公开可以根据监控策略来执行具体的监控操作。监控策略可以包括监控时间范围,时间范围可以人为设定,也可以根据具体业务发生的时间范围来确定,还可以根据数据库高并发曾经持续的时间范围来确定。例如可以是24小时(例如2020年01月01的0:00至2020年01月02的0:00)。监控策略可以包括监控频率,即单位时间内监控的次数。例如,可以1小时监控3次,可以24天之内监控2次。
需要说明的是,根据执行性能标识对初始操作语句进行筛选时,可以为性能消耗标识、操作类型标识以及执行参数标识设置筛选优先级,根据筛选优先级对初始操作语句执行不同的筛选操作,本公开此不做限定,本领域技术人员在具体实施时,可以根据经验或实际需要自行设定筛选优先级顺序和执行性能标识,依次筛选出可查杀操作语句并执行查杀操作,直到数据库的实际负载不高于负载阈值为止。
图6示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图。该方法600除了可以包括如图3所示的操作S310~操作S330之外,还可以包括如图6所示的操作S610~操作S620。
在操作S610,获取对可查杀操作语句执行查杀操作的时间戳。
在操作S620,基于查杀操作的时间戳,生成查杀日志文件。
为了对可查杀操作语句的查杀操作进行及时记录,便于后续对该操作语句的查杀历史做到有据可查,可以基于对可查杀操作语句执行查杀操作的时间戳,生成带有时间戳的查杀日志文件。
图7示意性示出了根据本公开另一实施例的数据库操作语句的处理方法的流程图。如图7所示,该方法700可以包括如下操作。
在操作S710,采集监控。操作S710可以包括操作S7101,定期扫描。在具体实施时,可以通过监控代理在操作系统级别对数据库服务器的CPU、内存使用率以一定的频次进行定时监控,在达到数据库高压力的告警阈值的情况下,触发告警判定。
在操作S720,异常判定。操作S720可以包括操作S7201~操作S7203。在操作S7201,报警配置。在操作S7202,告警判定。若判定为终止,则执行进程终止的操作S7301。若判定为非终止,则执行生成告警日志的操作S7203。在具体实施时,可以首先在配置文件预先配置CPU、内存、IO等关键资源消耗高又可查杀的外围SQL语句(SQLID)以及对应SQL语句可允许的运行时间(ELAPSED_TIME),键值对(Key-Value,KV)。然后在程序里设置异常判定逻辑规则,定时探测执行时间超过ELAPSED_TIME阈值的SQL语句(SQLID),如果匹配则返回SQLID集,并触发进程终止模块运行。注意,这里运行时间(ELAPSED_TIME)根据应用需求既可设置为固定数值也可以设置抓取一定时间范围内结合执行次数估算的平均耗时动态取值。
在操作S730,自动查杀。操作S730可以包括操作S7301~操作S7302。在操作S7302,生成终止日志。在具体实施时,若匹配满足告警判定原则,可以通过SQL拼写生成查杀语句输出查杀命令文件在操作系统层面执行,同时还可以生成带有时间戳的判定日志文件。
通过本公开的实施例,由于给底层数据库增加了主动保活加固措施,因此可以保护执行核心SQL所需的资源,避免执行非核心SQL对数据库的系统资源的争用和等待,作为应用侧限流熔断等传统措施的补充手段,多方面降低高并发系统压力,实现数据库保活,提升业务连续性。
图8示意性示出了根据本公开实施例的数据库操作语句的处理装置的框图。如图8所示,该装置800可以包括操作语句获得模块810、操作语句筛选模块820以及操作语句处理模块830。
操作语句获得模块810,用于响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,m为正整数。
操作语句筛选模块820,用于从m条初始操作语句中筛选出可查杀操作语句。可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句和/或根据初始操作语句的执行性能标识筛选出的初始操作语句。
操作语句处理模块830,用于对可查杀操作语句执行查杀操作,使可执行操作语句在指定数据库中执行,以获得业务处理请求的请求结果。可执行操作语句是m条初始操作语句中除可查杀操作语句之外的初始操作语句。
可选地,操作语句获得模块810例如可以用于执行图3描述的操作S310。操作语句筛选模块820例如可以用于执行图3描述的操作S320。操作语句处理模块830例如可以用于执行图3描述的操作S330,在此不再赘述。
图9示意性示出了根据本公开另一实施例的数据库操作语句的处理装置的框图。如图9所示,前述操作语句筛选模块820可以包括业务属性标识获取子模块911以及第一操作语句筛选子模块912。
业务属性标识获取子模块911,用于针对m条初始操作语句,获取与每条初始操作语句对应的业务属性标识。业务属性标识用于表征初始操作语句所要执行的业务是否为可被中断业务。
第一操作语句筛选子模块912,用于基于与每条初始操作语句对应的业务属性标识,从m条初始操作语句中筛选出可查杀操作语句,可查杀操作语句所要执行的业务为可被中断业务。
可选地,业务属性标识获取子模块911例如可以用于执行图4描述的操作S421。第一操作语句筛选子模块912例如可以用于执行图4描述的操作S422,在此不再赘述。
根据本公开的实施例,执行性能标识包括性能消耗标识,操作语句筛选模块还包括:性能消耗标识获取子模块,用于针对m条初始操作语句,获取与每条初始操作语句对应的性能消耗标识,性能消耗标识用于表征执行初始操作语句的性能消耗是否超过预设阈值。第二操作语句筛选子模块,用于基于与每条初始操作语句对应的性能消耗标识,从m条初始操作语句中筛选出可查杀操作语句,执行可查杀操作语句的性能消耗超过预设阈值。
根据本公开的实施例,性能消耗标识获取子模块包括:第一获取单元,用于通过配置文件和数据库性能视图,获取与每条初始操作语句对应的性能消耗标识,配置文件是根据执行初始操作语句的性能消耗的历史数据配置的。或第二获取单元,用于通过实时运算,获取与每条初始操作语句对应的性能消耗标识。
根据本公开的实施例,执行性能标识包括操作类型标识,操作语句筛选模块还包括:第一操作类型标识获取子模块,用于获取预先配置的第一操作类型标识,第一操作类型标识为可查杀操作语句对指定数据库的操作类型标识。第二操作类型标识获取子模块,用于针对m条初始操作语句,获取与每条初始操作语句对应的第二操作类型标识。第一检测子模块,用于检测m条初始操作语句中是否存在与第一操作类型标识一致的初始操作语句。第三操作语句筛选子模块,用于若存在初始操作语句,则从m条初始操作语句中筛选出可查杀操作语句。可查杀操作语句为与第一操作类型标识一致的初始操作语句。
根据本公开的实施例,执行性能标识包括执行参数标识,操作语句筛选模块还包括:第一执行参数标识获取子模块,用于获取预先配置的第一执行参数标识,第一执行参数标识为可查杀操作语句在指定数据库中的允许执行次数和/或允许执行时长。第二执行参数标识获取子模块,用于针对m条初始操作语句,获取与每条初始操作语句对应的第二执行参数标识,第二执行参数标识为初始操作语句在指定数据库中的实际已执行次数和/或实际已执行时长。第二检测子模块,用于检测m条初始操作语句中是否存在实际已执行次数超过允许执行次数和/或实际已执行时长超过允许执行时长的初始操作语句。第四操作语句筛选子模块,用于若存在初始操作语句,则从m条初始操作语句中筛选出可查杀操作语句,可查杀操作语句为实际执行次数超过允许执行次数和/或实际执行时长超过允许执行时长的初始操作语句。
根据本公开的实施例,操作语句筛选模块还包括:第三执行参数标识获取子模块,用于在对可查杀操作语句执行查杀操作的情况下,获取可查杀操作语句在指定数据库中的实际执行次数和/或实际执行时长。第一执行参数确定子模块,用于根据实际执行次数和/或实际执行时长,确定可查杀操作语句在指定数据库中的允许执行次数和/或允许执行时长。
图10示意性示出了根据本公开另一实施例的数据库操作语句的处理装置的框图。作为一种可选的实施例,该装置1000除了包括图8所示的操作语句获得模块810、操作语句筛选模块820以及操作语句处理模块830之外,还可以包括如图10所示的实际负载获取模块1010、负载阈值获取模块1020、负载检测模块1030以及筛选确定模块1040。
实际负载获取模块1010,用于针对指定数据库的系统资源,获得系统资源的实际负载。系统资源包括处理器、内存以及输入输出系统。
负载阈值获取模块1020,用于获取系统资源的负载阈值。
负载检测模块1030,用于检测实际负载是否超过负载阈值。
筛选确定模块1040,用于若超过负载阈值,则确定从m条初始操作语句中筛选出可查杀操作语句。
可选地,实际负载获取模块1010例如可以用于执行图5描述的操作S510。负载阈值获取模块1020例如可以用于执行图5描述的操作S520。负载检测模块1030例如可以用于执行图5描述的操作S530。筛选确定模块1040例如可以用于执行图5描述的操作S540,在此不再赘述。
根据本公开的实施例,装置还包括:告警日志文件生成模块,用于若超过负载阈值,则生成告警日志文件。
根据本公开的实施例,实际负载获取模块用于:按照预先设定的监控策略,对系统资源的运行参数执行监控操作,以获得系统资源的实际负载,其中,监控策略包括监控时间范围和/或监控频率。
图11示意性示出了根据本公开另一实施例的数据库操作语句的处理装置的框图。作为一种可选的实施例,该处理装置1100除了可以包括如图8所示的操作语句获得模块810、操作语句筛选模块820以及操作语句处理模块830之外,还可以包括如图11所示的时间戳获取模块1100以及查杀日志文件生成模块1120。
时间戳获取模块1100,用于获取对可查杀操作语句执行查杀操作的时间戳。查杀日志文件生成模块1120,用于基于查杀操作的时间戳,生成查杀日志文件。
可选地,时间戳获取模块1100例如可以用于执行图6描述的操作S610。查杀日志文件生成模块1120例如可以用于执行图6描述的操作S620,在此不再赘述。
需要说明的是,装置部分实施例中各模块的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,操作语句获得模块、操作语句筛选模块、操作语句处理模块、业务属性标识获取子模块、第一操作语句筛选子模块、性能消耗标识获取子模块、第二操作语句筛选子模块、第一获取单元、第二获取单元、第一操作类型标识获取子模块、第二操作类型标识获取子模块、第一检测子模块、第三操作语句筛选子模块、第一执行参数标识获取子模块、第二执行参数标识获取子模块、第二检测子模块、第四操作语句筛选子模块、第三执行参数标识获取子模块、第一执行参数确定子模块、实际负载获取模块、负载阈值获取模块、负载检测模块以及筛选确定模块以及告警日志文件生成模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,操作语句获得模块、操作语句筛选模块、操作语句处理模块、业务属性标识获取子模块、第一操作语句筛选子模块、性能消耗标识获取子模块、第二操作语句筛选子模块、第一获取单元、第二获取单元、第一操作类型标识获取子模块、第二操作类型标识获取子模块、第一检测子模块、第三操作语句筛选子模块、第一执行参数标识获取子模块、第二执行参数标识获取子模块、第二检测子模块、第四操作语句筛选子模块、第三执行参数标识获取子模块、第一执行参数确定子模块、实际负载获取模块、负载阈值获取模块、负载检测模块以及筛选确定模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,操作语句获得模块、操作语句筛选模块、操作语句处理模块、业务属性标识获取子模块、第一操作语句筛选子模块、性能消耗标识获取子模块、第二操作语句筛选子模块、第一获取单元、第二获取单元、第一操作类型标识获取子模块、第二操作类型标识获取子模块、第一检测子模块、第三操作语句筛选子模块、第一执行参数标识获取子模块、第二执行参数标识获取子模块、第二检测子模块、第四操作语句筛选子模块、第三执行参数标识获取子模块、第一执行参数确定子模块、实际负载获取模块、负载阈值获取模块、负载检测模块以及筛选确定模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图12示意性示出了根据本公开实施例的适于实现上文描述的数据库操作语句的处理方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在设备上运行时,程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的数据库操作语句的处理方法中的前述各项操作(或步骤),例如执行本公开的数据库操作语句的处理方法。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图12所示,描述了根据本发明的实施方式的数据库操作语句的处理程序产品1200,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java,C++等,还包括常规的过程式程序设计语言-诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAA)或广域网(WAA)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图13示意性示出了根据本公开实施例的适于实现上文描述的数据库操作语句的处理方法的电子设备的框图。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,根据本公开实施例的电子设备1300包括处理器1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CNU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有电子设备1300操作所需的各种程序和数据。处理器1301、ROM 1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行本公开实施例的数据库操作语句的处理方法。
根据本公开的实施例,电子设备1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。系统1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAA卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的数据库操作语句的处理方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1302和/或RAM 1303和/或ROM 1302和RAM 1303以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目标,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种数据库操作语句的处理方法,包括:
响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,其中,m为正整数;
从所述m条初始操作语句中筛选出可查杀操作语句,其中,所述可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句,其中,所述业务属性标识基于业务的类型、业务的响应时限以及业务的重要程度中至少之一进行划分得到;
对所述可查杀操作语句执行查杀操作,使可执行操作语句在所述指定数据库中执行,以获得所述业务处理请求的请求结果,其中,所述可执行操作语句是所述m条初始操作语句中除所述可查杀操作语句之外的初始操作语句。
2.根据权利要求1所述的方法,其中,所述从所述m条初始操作语句中筛选出可查杀操作语句包括:
针对所述m条初始操作语句,获取与每条初始操作语句对应的业务属性标识,其中,所述业务属性标识用于表征初始操作语句所要执行的业务是否为可被中断业务;
基于所述与每条初始操作语句对应的业务属性标识,从所述m条初始操作语句中筛选出可查杀操作语句,其中,所述可查杀操作语句所要执行的业务为可被中断业务。
3.根据权利要求1所述的方法,其中,所述可查杀操作语句还包括根据初始操作语句的执行性能标识筛选出的初始操作语句,所述执行性能标识包括性能消耗标识,所述方法还包括:
针对所述m条初始操作语句,获取与每条初始操作语句对应的性能消耗标识,其中,所述性能消耗标识用于表征执行初始操作语句的性能消耗是否超过预设阈值;
基于所述与每条初始操作语句对应的性能消耗标识,从所述m条初始操作语句中筛选出可查杀操作语句,其中,执行所述可查杀操作语句的性能消耗超过所述预设阈值。
4.根据权利要求3所述的方法,其中,所述获取与每条初始操作语句对应的性能消耗标识包括:
通过配置文件和数据库性能视图,获取与每条初始操作语句对应的性能消耗标识,其中,所述配置文件是根据执行初始操作语句的性能消耗的历史数据配置的;或
通过实时运算,获取与每条初始操作语句对应的性能消耗标识。
5.根据权利要求3所述的方法,其中,所述执行性能标识包括操作类型标识,所述方法还包括:
获取预先配置的第一操作类型标识,其中,所述第一操作类型标识为可查杀操作语句对所述指定数据库的操作类型标识;
针对所述m条初始操作语句,获取与每条初始操作语句对应的第二操作类型标识;
检测所述m条初始操作语句中是否存在与所述第一操作类型标识一致的初始操作语句;
若存在所述初始操作语句,则从所述m条初始操作语句中筛选出可查杀操作语句,其中,所述可查杀操作语句为与所述第一操作类型标识一致的初始操作语句。
6.根据权利要求3所述的方法,其中,所述执行性能标识包括执行参数标识,所述方法还包括:
获取预先配置的第一执行参数标识,其中,所述第一执行参数标识为可查杀操作语句在所述指定数据库中的允许执行次数和/或允许执行时长;
针对所述m条初始操作语句,获取与每条初始操作语句对应的第二执行参数标识,其中,所述第二执行参数标识为初始操作语句在所述指定数据库中的实际已执行次数和/或实际已执行时长;
检测所述m条初始操作语句中是否存在实际已执行次数超过允许执行次数和/或已执行时长超过允许执行时长的初始操作语句;
若存在所述初始操作语句,则从所述m条初始操作语句中筛选出可查杀操作语句,其中,所述可查杀操作语句为实际执行次数超过允许执行次数和/或实际执行时长超过允许执行时长的初始操作语句。
7.根据权利要求6所述的方法,其中,所述方法还包括:
在对所述可查杀操作语句执行查杀操作的情况下,获取所述可查杀操作语句在所述指定数据库中的实际已执行次数和/或实际已执行时长;
根据所述实际执行已次数和/或实际已执行时长,确定可查杀操作语句在所述指定数据库中的允许执行次数和/或允许执行时长。
8.根据权利要求1所述的方法,其中,在从所述m条初始操作语句中筛选出可查杀操作语句之前,所述方法还包括:
针对所述指定数据库的系统资源,获得所述系统资源的实际负载,其中,所述系统资源包括处理器、内存以及输入输出系统;
获取所述系统资源的负载阈值;
检测所述实际负载是否超过所述负载阈值;
若超过所述负载阈值,则确定从所述m条初始操作语句中筛选出可查杀操作语句。
9.根据权利要求8所述的方法,其中,所述方法还包括:
若超过所述负载阈值,则生成告警日志文件。
10.根据权利要求8所述的方法,其中,所述获得所述系统资源的实际负载包括:
按照预先设定的监控策略,对所述系统资源的运行参数执行监控操作,以获得所述系统资源的实际负载,其中,所述监控策略包括监控时间范围和/或监控频率。
11.根据权利要求1所述的方法,其中,所述方法还包括:
获取对所述可查杀操作语句执行查杀操作的时间戳;
基于所述查杀操作的时间戳,生成查杀日志文件。
12.一种数据库操作语句的处理装置,包括:
操作语句获得模块,用于响应于业务处理请求,获得向指定数据库发送的m条初始操作语句,其中,m为正整数;
操作语句筛选模块,用于从所述m条初始操作语句中筛选出可查杀操作语句,其中,所述可查杀操作语句包括根据初始操作语句所要执行业务的业务属性标识筛选出的初始操作语句,其中,所述业务属性标识基于业务的类型、业务的响应时限以及业务的重要程度中至少之一进行划分得到;
操作语句处理模块,用于对所述可查杀操作语句执行查杀操作,使可执行操作语句在所述指定数据库中执行,以获得所述业务处理请求的请求结果,其中,所述可执行操作语句是所述m条初始操作语句中除所述可查杀操作语句之外的初始操作语句。
13.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,所述指令被处理器执行时使处理器执行用于实现权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011069739.XA CN112181948B (zh) | 2020-09-30 | 2020-09-30 | 数据库操作语句的处理方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011069739.XA CN112181948B (zh) | 2020-09-30 | 2020-09-30 | 数据库操作语句的处理方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181948A CN112181948A (zh) | 2021-01-05 |
CN112181948B true CN112181948B (zh) | 2024-02-02 |
Family
ID=73948579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011069739.XA Active CN112181948B (zh) | 2020-09-30 | 2020-09-30 | 数据库操作语句的处理方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181948B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988743B (zh) * | 2021-02-25 | 2024-02-02 | 中国工商银行股份有限公司 | 数据表容量预警的方法、装置、系统和介质 |
CN115981817B (zh) * | 2022-12-30 | 2023-09-05 | 深圳计算科学研究院 | 一种面向htap的任务资源调度方法及其系统 |
CN116701053B (zh) * | 2023-05-30 | 2024-03-19 | 杭州政云数据技术有限公司 | 生产环境数据库的数据备份恢复方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718474A (zh) * | 2014-12-03 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 用于对MySQL数据库的并发操作进行控制的方法及装置 |
CN105956143A (zh) * | 2016-05-11 | 2016-09-21 | 深圳市永兴元科技有限公司 | 数据库访问方法及数据库代理节点 |
CN111597149A (zh) * | 2020-04-27 | 2020-08-28 | 五八有限公司 | 一种数据库的数据清理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10503705B2 (en) * | 2017-02-28 | 2019-12-10 | Sap Se | Database memory management in a high availability database system using limits |
-
2020
- 2020-09-30 CN CN202011069739.XA patent/CN112181948B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718474A (zh) * | 2014-12-03 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 用于对MySQL数据库的并发操作进行控制的方法及装置 |
CN110781244A (zh) * | 2014-12-03 | 2020-02-11 | 阿里巴巴集团控股有限公司 | 用于对数据库的并发操作进行控制的方法及装置 |
CN105956143A (zh) * | 2016-05-11 | 2016-09-21 | 深圳市永兴元科技有限公司 | 数据库访问方法及数据库代理节点 |
CN111597149A (zh) * | 2020-04-27 | 2020-08-28 | 五八有限公司 | 一种数据库的数据清理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112181948A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181948B (zh) | 数据库操作语句的处理方法、装置、电子设备和介质 | |
US10235430B2 (en) | Systems, methods, and apparatuses for detecting activity patterns | |
JP2019532416A (ja) | ストリームデータにおける空間変化検出器 | |
CN111125107A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN107544849A (zh) | 一种web服务器并发管理方法及系统 | |
US10320896B2 (en) | Intelligent mapping for an enterprise grid | |
US20230161664A1 (en) | Method of responding to operation, electronic device, and storage medium | |
CN116701020A (zh) | 消息延时处理方法、装置、设备、介质和程序产品 | |
US11093475B2 (en) | External change detection | |
CN114968552A (zh) | 缓存分配方法、装置、设备、存储介质和程序产品 | |
CN115033574A (zh) | 信息生成方法、信息生成装置、电子设备及存储介质 | |
CN114780165A (zh) | 基于消息队列的应用服务配置热加载方法及相关设备 | |
US20120323840A1 (en) | Data flow cost modeling | |
CN113421109A (zh) | 一种业务核对方法、装置、电子设备和存储介质 | |
CN110851533A (zh) | 跨异构数据库的数据同步方法、装置、介质及电子设备 | |
CN116910813A (zh) | 数据库操作管理方法、装置、设备、介质和程序产品 | |
US12045125B2 (en) | Alert aggregation and health issues processing in a cloud environment | |
US10565044B2 (en) | Message handling related to non-parallelizable functionality | |
CN114138914A (zh) | MySQL数据库管理方法、装置、电子设备和存储介质 | |
CN117194161A (zh) | 数据库异常处理方法及装置、电子设备和存储介质 | |
US20240152401A1 (en) | Automation framework for multi-cloud quota management | |
US8521472B2 (en) | Method to compute wait time | |
CN116205461A (zh) | 业务系统高峰保障方法、装置、设备、介质和程序产品 | |
CN115757417A (zh) | HBase表的运维方法、装置、设备、存储介质和程序产品 | |
CN116821251A (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 |