CN113961586A - 一种sql语句的控制方法及装置 - Google Patents
一种sql语句的控制方法及装置 Download PDFInfo
- Publication number
- CN113961586A CN113961586A CN202111223426.XA CN202111223426A CN113961586A CN 113961586 A CN113961586 A CN 113961586A CN 202111223426 A CN202111223426 A CN 202111223426A CN 113961586 A CN113961586 A CN 113961586A
- Authority
- CN
- China
- Prior art keywords
- control strategy
- statement
- control
- sql
- sql 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.)
- Pending
Links
Images
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书披露的多个实施例提供了一种SQL语句的控制方法及装置。数据库系统的用户可以配置若干控制策略并提供给数据库系统,数据库系统可以针对命中控制策略的SQL语句进行控制操作。此处的控制操作具体可以是,如果满足控制策略指定的可等待条件,则将命中控制策略的SQL语句添加到控制策略对应的等待队列。数据库系统可以在坚持当前并发量不超出控制策略指定的最大并发数量的前提下,依序执行该等待队列中的SQL语句。
Description
技术领域
本说明书多个实施例涉及数据库技术领域,尤其涉及一种SQL语句的控制方法及装置。
背景技术
在数据库技术领域,可以利用结构化查询语言(Structured Query Language,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示意性提供一种SQL语句的控制装置。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
目前的数据库系统基于是否需要对数据库进行分片存储,有中心化数据库系统与分布式数据库系统之分。
中心化数据库系统可以包括若干计算节点与单个存储节点,数据库由该单个存储节点进行存储,计算节点负责根据接收到的SQL语句对存储节点上的数据库进行读、写等操作。出于扩展计算性能的考虑,中心化数据库系统中可以包括多个计算节点,这多个计算节点之间基于负载均衡,从负载均衡设备接收不同的SQL语句进行执行。
分布式数据库系统可以包括若干计算点与多个存储节点,这多个存储节点对数据库进行分片存储,数据库分布式部署在多个存储节点上。计算节点负责根据接收到的SQL语句确定对应的数据读写需求,进而分析出需要针对哪些存储节点上的分片数据进行操作。同样出于扩展计算性能的考虑,分布式数据库系统中可以包括多个计算节点、负载均衡设备以及多个存储节点。负载均衡设备基于负载均衡,将从用户处接收的SQL语句分流给这多个计算节点中的某个计算节点,由该计算节点执行SQL语句。
本文所述的数据库系统资源,可以是指数据库系统中的计算节点的计算资源(如CPU资源、内存资源)以及存储节点的IO资源。
数据库系统中的计算节点可以接收用户发送的SQL语句,执行SQL语句,实现对存储节点上部署的数据库的操作(如读操作、写操作)。此处所述的用户,可以是个人用户,也可以是机构用户。用户可以在数据库系统注册账号,并且在自己的业务设备集群上登录该账号,业务设备集群中的业务设备可以根据预设业务逻辑,向数据库系统发送SQL语句,以实现相应的数据读写操作。
在实际应用中,数据库系统短时间内接收的SQL语句过多,即SQL语句的并发数量过大的情况下,按照既有的数据库系统的运行方式,这些SQL语句都需要得到立即执行,然而,数据库系统又没有足够的资源用于短时间执行这么多的SQL语句,因此会造成过多的SQL语句对有限的数据库系统资源进行争抢。如果某个SQL语句无法执行,数据库系统会针对该SQL语句返回执行失败结果,可能给用户造成预期之外的业务损失。例如,涉及比较重要业务的SQL语句可能不能得到执行,给用户造成较大的业务损失。
在本说明书看来,在数据库系统资源有限的前提下,如果出现过多SQL语句并发的情况,则可以追求尽可能避免SQL语句之间无序的资源争抢,并且使得数据库系统暂时的资源紧张给用户带来的业务损失在用户的预期之内。例如,用户可以预先明确哪些SQL语句是必须得到立即执行的,哪些SQL语句是可以暂缓执行的,哪些SQL语句是可以不执行的(返回执行失败)。
为此,本说明书提供的技术方案为,数据库系统的用户可以配置若干控制策略并提供给数据库系统,数据库系统可以针对命中控制策略的SQL语句进行控制操作。此处的控制操作具体可以是,如果满足控制策略指定的可等待条件,则将命中控制策略的SQL语句添加到控制策略对应的等待队列。数据库系统可以在坚持当前并发量不超出控制策略指定的最大并发数量的前提下,依序执行该等待队列中的SQL语句。如此,在SQL语句的并发数量较大的情况下,可以避免过多的SQL语句对有限的数据库系统资源进行争抢,降低对数据库系统的压力。
以下结合附图,详细说明上述技术方案。
图1示意性提供一种SQL语句的控制方法流程,包括以下步骤:
S100:若确定用户发送的目标SQL语句命中至少一个控制策略,则选定所命中的其中一个控制策略,并执行步骤S102-S104。
S102:若满足该控制策略指定的可等待条件,则将所述目标SQL语句添加至该控制策略对应的等待队列。
S104:以当前并发数量不超出该控制策略指定的最大并发数量为目标,依序执行该等待队列中的SQL语句;其中,所述当前并发数量为当前命中该控制策略且正在执行的SQL语句的数量。
图1所示方法流程可以应用于数据库系统,如果数据库系统具有计算节点,则可以应用于数据库系统的计算节点上。如果数据库系统具有多个计算节点,则图1所示方法流程可以应用于数据库系统的每个计算节点上。在后文中,以执行主体是数据库系统为例,本领域技术人员应当理解,在数据库系统包括计算节点的实施例中,具体的执行主体可以为计算节点。
用户配置的控制策略指定了对哪些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语句的最大数量。最大并发数量可以是用户在配置控制策略时指定的,理论上最大并发数量可以设置为0,意味着凡是命中该控制策略的SQL语句,当前都不允许执行。
如果当前并发数量(当前命中该控制策略且正在执行的SQL语句的数量)与控制策略指定的最大并发数量之间存在差额,则意味着存在并发度空闲,可以从等待队列中按序读取SQL语句进行执行。
此外,在一些实施例中,针对任一控制策略,判断所述目标SQL语句是否命中该控制策略的步骤包括:判断所述目标SQL语句是否满足该控制策略指定的匹配条件,若满足该匹配条件,则确定所述目标SQL语句命中该控制策略。其中,该匹配条件包括以下至少一个:
所述目标SQL语句对应的SQL模板,属于该控制策略指定的SQL模板集合;
所述目标SQL语句包含该控制策略指定的关键词;
所述目标SQL语句属于该控制策略指定的SQL语句。
在一些实施例中,数据库系统还可以预先确定用户配置的至少部分控制策略对应的数据库适用范围;该数据库适用范围可以包括:至少一个数据库中的至少部分数据表。相应的,该至少部分控制策略指定的匹配条件可以包括:所述目标SQL语句对应的数据库执行范围包含于该至少部分控制策略的数据库适用范围;其中,所述数据库执行范围包括至少一个数据库中的至少部分数据表。
在一些实施例中,数据库系统还预先确定用户配置的至少部分控制策略对应的语句来源范围;该语句来源范围可以包括:至少一个用户账户所登录的至少一个设备。相应的,该至少部分控制策略指定的匹配条件可以包括:发送所述目标SQL语句的用户账户所登录的设备,包含于该语句来源范围。
在一些实施例中,数据库系统还预先确定用户配置的至少部分控制策略对应的语句类型集合;该语句类型集合可以包括以下至少一个:更新语句update、查询语句select、写入语句insert、删除语句delete。相应的,该至少部分控制策略指定的匹配条件可以包括:所述目标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语句模板。数据库系统可以将plan_cache表(用于存储SQL语句模板的数据表)和用于存储控制策略所指定的SQL语句模板ID的数据表进行基于SQL语句模板ID的inner join操作,查询到控制策略所指定的执行时长比较长、需要被控制的各个SQL语句模板,并将这些SQL语句模板返回给用户。
在一些实施例中,用户可能在配置完成某个控制策略之前,已经有一些能够命中该控制策略的SQL语句正在执行,用户配置完成该控制策略之后,这些SQL语句依然正在执行,对于这些SQL语句,实际上已经来不及在执行前进行控制,因此,可以直接停止执行。也就是说,在确定用户配置的任一控制策略之后,若监测到存在命中该控制策略且正在执行的SQL语句,则结束对该SQL语句的执行。
图2示意性提另一种SQL语句的控制流程,应用于数据库系统中的计算节点,图2所示的流程包括以下步骤:
S200:获取待执行的目标SQL语句。
S202:根据用户配置的各个控制策略分别指定的匹配条件,判断目标SQL语句是否命中至少一个控制策略,若是,则执行步骤S204,若否,则执行步骤S206。
S204:在目标SQL语句所命中的各个控制策略中,选定用户最近配置的控制策略。
S206:执行目标SQL语句。
S208:判断选定的控制策略对应的等待队列是否已满,若是,则执行步骤S210,若否,则执行步骤S212。
S210:向用户返回执行失败结果或者向用户报错。
S212:将目标SQL语句添加至选定的控制策略对应的等待队列。
其中,以当前并发数量不超出该控制策略指定的最大并发数量为目标,依序执行该等待队列中的SQL语句。
S214:判断目标SQL语句在该等待队列中的时长是否超出该控制策略指定的最大等待时长,若是,则执行S216,若否,则执行S218。
S216:将目标SQL语句移出该等待队列,并转至S210。
S218:目标SQL语句继续在等待队列中等待执行。
其中,有并发度空闲时,依序读取等待队列中的SQL,直至读取到目标SQL语句,转至S206。
此外,在数据库系统为分布式数据库系统的情况下,还提供一些扩展实施例。
图3示意性提供一种分布式数据库系统的架构。如图3所示,分布式数据库系统包括负载均衡设备、多个计算节点(图中示出3个计算节点)与多个存储节点(图中示出3个存储节点)。负载均衡设备接收用户发送的请求,用户发送的请求可以是SQL语句,也可以是针对计算节点上部署的控制策略的查询请求、删除请求等。
负载均衡设备需要基于负载均衡,将用户发送的请求转发给某个计算节点。对于SQL语句,计算节点基于部署的若干生效的控制策略,基于图1所示方法流程对SQL语句进行控制。如果不需要对SQL语句进行控制,则直接执行SQL语句。计算节点需要分析SQL语句,根据分析结果确定如何对用于分片存储数据的多个存储节点进行操作。
在一些实施例中,所述多个计算节点中的一个计算节点可以预先接收负载均衡设备发送的控制规则;该控制规则由用户设定并提供给负载均衡设备。该计算节点可以将该控制规则解析成规则元数据,基于该规则元数据在本地部署控制策略,并且,将该规则源数据存入元数据库。接着,该计算节点向其他计算节点广播新增控制策略通知。然后其他计算节点可以从元数据库中读取该规则元数据,并根据该规则元数据,在本地部署控制策略。
在一些实施例中,任一计算节点可以响应于用户发送的策略查询请求,确定用户请求查询的控制策略。接着,该计算节点可以从元数据库读取该控制策略对应的规则元数据,获取本地有关该控制策略的运行状态数据,以及从其他节点获取有关该控制策略的运行状态数据。然后,该计算节点可以将该控制策略对应的规则元数据以及获取的运行状态数据,返回给用户。
在一些实施例中,任一计算节点可以响应于用户发送的策略删除请求,确定用户请求删除的控制策略。接着,该计算节点可以删除该控制策略,并删除元数据库中该控制策略对应的规则元数据。然后,该计算节点向其他计算节点广播策略删除通知,其他计算节点可以删除该控制策略。
通过本说明书提供的各个实施例中的SQL语句控制方案,可以实现如下技术效果:
1、可以提供具有丰富匹配维度的匹配条件,这些匹配维度可以包括关键字、SQL语句模板、SQL语句本身,使得SQL语句命中控制策略的方式不再单一。
2、用户简单触发数据库系统对执行时间比较长的SQL语句生成控制策略,用户只需要简单指定最大执行时长即可。此外,还可以指定最大并发度、筛选出的执行时间比较长的SQL语句模板的最大数量。
3、用户可以方便查询自己配置了哪些控制策略,每个控制策略的运行情况相关信息。
4、对于命中控制策略的SQL语句,可以回收其占用的线程,并将SQL语句添加至等待队列进行缓存,后续需要执行SQL语句时,再重新分配线程给该SQL语句。在SQL语句处于等待队列过程中,其所占用的线程资源得以释放,也无需为该SQL语句保存中间状态数据,系统开销小。
5、用户发现数据库系统资源比较紧张的时候,或者发现SQL语句高并发时,可以请求数据库系统生效用户预先配置的至少部分控制策略,以降低数据库系统的资源压力。并且,如果生效的控制策略可以命中涉及不重要业务的SQL语句的话,那么更可以确保用户的重要业务对应的SQL语句得以顺利执行。
图4示意性提供一种SQL语句的控制装置,应用于数据库系统,所述数据库系统预先确定用户配置的若干控制策略,其中每个控制策略对应有等待队列,用于缓存命中该控制策略的SQL语句,所述装置包括:
控制模块401,若确定用户发送的目标SQL语句命中至少一个控制策略,则选定所命中的其中一个控制策略,并执行以下步骤:若满足该控制策略指定的可等待条件,则将所述目标SQL语句添加至该控制策略对应的等待队列;以当前并发数量不超出该控制策略指定的最大并发数量为目标,依序执行该等待队列中的SQL语句;其中,所述当前并发数量为当前命中该控制策略且正在执行的SQL语句的数量。
本说明书还提供一种计算机程序,所述计算机程序在运行时实现图1或图2所示方法流程。
本说明书还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现图或图2所示方法流程。
本说明书还提供一种计算设备,包括存储器、处理器;所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现图1或图2所示方法流程。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
综上所述,本说明书披露的一些实施例中,通过数字身份技术把数字化物品和数字身份连接,而前述数字身份可进一步包括身份认证信息以使得数字化物品的交易可以满足监管KYC的要求。在有些实施例中,部分或所有数字身份均完全实名认证,提供一个完全实名认证的基于区块链的交易系统。这样的系统有利于反洗钱发欺诈运营,成为一个真正可信交易系统。在一些实施例中,将数字化物品与数字身份所附随的记录、验证功能相结合,便可简便地对交易对象、交易参与方等交易要素进行记录及验证,进而提高交易的便利性和可靠性。在另一些实施例中,可不依赖数字身份,而由交易方的客户端调用区块链系统中的智能合约在链上创建数字化物品与其所有方之间的关联关系表,并将该等关联关系表存储于智能合约中,进而在链上对数字化物品的所有权归属进行可信记载。
上述对本说明书多个实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书多个实施例。在本说明书多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本说明书多个实施例的较佳实施例而已,并不用以限制本说明书多个实施例,凡在本说明书多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书多个实施例保护的范围之内。
Claims (14)
1.一种SQL语句的控制方法,应用于数据库系统,所述数据库系统预先确定若干控制策略,其中每个控制策略对应有等待队列,用于缓存命中该控制策略的SQL语句,所述方法包括:
若确定用户发送的目标SQL语句命中至少一个控制策略,则选定所命中的其中一个控制策略,并执行以下步骤:
若满足该控制策略指定的可等待条件,则将所述目标SQL语句添加至该控制策略对应的等待队列;
以当前并发数量不超出该控制策略指定的最大并发数量为目标,依序执行该等待队列中的SQL语句;其中,所述当前并发数量为当前命中该控制策略且正在执行的SQL语句的数量。
2.如权利要求1所述方法,针对任一控制策略,判断所述目标SQL语句是否命中该控制策略的步骤包括:
判断所述目标SQL语句是否满足该控制策略指定的匹配条件,若满足该匹配条件,则确定所述目标SQL语句命中该控制策略;
其中,该匹配条件包括以下至少一个:
所述目标SQL语句对应的SQL模板,属于该控制策略指定的SQL模板集合;
所述目标SQL语句包含该控制策略指定的关键词;
所述目标SQL语句属于该控制策略指定的SQL语句。
3.如权利要求2所述方法,所述数据库系统还预先确定用户配置的至少部分控制策略对应的数据库适用范围;该数据库适用范围包括:至少一个数据库中的至少部分数据表;
该至少部分控制策略指定的匹配条件包括:
所述目标SQL语句对应的数据库执行范围包含于该至少部分控制策略的数据库适用范围;其中,所述数据库执行范围包括至少一个数据库中的至少部分数据表。
4.如权利要求2所述方法,所述数据库系统还预先确定用户配置的至少部分控制策略对应的语句来源范围;该语句来源范围包括:至少一个用户账户所登录的至少一个设备;
该至少部分控制策略指定的匹配条件包括:
发送所述目标SQL语句的用户账户所登录的设备,包含于该语句来源范围。
5.如权利要求2所述方法,所述数据库系统还预先确定用户配置的至少部分控制策略对应的语句类型集合;该语句类型集合包括以下至少一个:更新语句update、查询语句select、写入语句insert、删除语句delete;
该至少部分控制策略指定的匹配条件还包括:
所述目标SQL语句对应的语句类型,包含于该语句类型集合。
6.如权利要求2所述方法,所述数据库系统还预先开启用户配置的至少部分控制策略对应的缓存加速功能,用于根据历史上命中该控制策略的多个SQL语句,统计分析出命中该控制策略对应的共同语句特征;
针对任一控制策略,判断所述目标SQL语句是否命中该控制策略的步骤包括:
判断所述目标SQL语句是否具有命中该控制策略对应的共同语句特征;
若是,则确定所述SQL语句命中该控制策略;
若否,则判断所述目标SQL语句是否满足该控制策略指定的匹配条件,若满足该匹配条件,则确定所述目标SQL语句命中该控制策略。
7.如权利要求1所述方法,满足该控制策略指定的可等待条件包括:
该控制策略对应的等待队列中SQL语句的数量未达到该控制策略指定的最大等待数量。
8.如权利要求1所述方法,还包括:
若所述目标SQL语句在该等待队列中的时长超出该控制策略指定的最大等待时长,则移出该等待队列,并向用户返回执行失败结果。
9.如权利要求1所述方法,将所述目标SQL语句添加至该控制策略对应的等待队列,包括:
将所述目标SQL语句占用的线程回收之后,将所述目标SQL语句添加至该控制策略对应的等待队列。
10.如权利要求1所述方法,预先确定用户配置的若干控制策略,包括:
预先根据用户指定的SQL语句最大执行时长,筛选出执行时长小于所述最大执行时长的若干SQL模板,并基于筛选出的若干SQL模板确定匹配条件;
根据该匹配条件,确定控制策略。
11.一种SQL语句的控制装置,应用于数据库系统,所述数据库系统预先确定用户配置的若干控制策略,其中每个控制策略对应有等待队列,用于缓存命中该控制策略的SQL语句,所述装置包括:
控制模块,若确定用户发送的目标SQL语句命中至少一个控制策略,则选定所命中的其中一个控制策略,并执行以下步骤:若满足该控制策略指定的可等待条件,则将所述目标SQL语句添加至该控制策略对应的等待队列;以当前并发数量不超出该控制策略指定的最大并发数量为目标,依序执行该等待队列中的SQL语句;其中,所述当前并发数量为当前命中该控制策略且正在执行的SQL语句的数量。
12.一种计算机程序,所述计算机程序在运行时实现权利要求1至10任一项所述方法。
13.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现1至10任一项所述方法。
14.一种计算设备,包括存储器、处理器;所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现权利要求1至10任一项所述方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111223426.XA CN113961586A (zh) | 2021-10-20 | 2021-10-20 | 一种sql语句的控制方法及装置 |
PCT/CN2022/124413 WO2023066070A1 (zh) | 2021-10-20 | 2022-10-10 | 一种sql语句的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111223426.XA CN113961586A (zh) | 2021-10-20 | 2021-10-20 | 一种sql语句的控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961586A true CN113961586A (zh) | 2022-01-21 |
Family
ID=79465176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111223426.XA Pending CN113961586A (zh) | 2021-10-20 | 2021-10-20 | 一种sql语句的控制方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113961586A (zh) |
WO (1) | WO2023066070A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023066070A1 (zh) * | 2021-10-20 | 2023-04-27 | 阿里云计算有限公司 | 一种sql语句的控制方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100395710C (zh) * | 2005-05-27 | 2008-06-18 | 华为技术有限公司 | 一种多线程应用程序访问数据库的方法 |
US8661024B2 (en) * | 2010-01-21 | 2014-02-25 | Oracle International Corporation | Database query resource management using select statement condition |
CN104346468A (zh) * | 2014-11-14 | 2015-02-11 | 浪潮(北京)电子信息产业有限公司 | 一种在数据库系统中实现并发i/o的方法和装置 |
US10503734B2 (en) * | 2015-07-14 | 2019-12-10 | Sap Se | External offline query optimization |
CN107563193A (zh) * | 2017-08-28 | 2018-01-09 | 深信服科技股份有限公司 | 基于sql模板的数据库访问控制方法及系统 |
CN111563101B (zh) * | 2020-07-11 | 2020-12-29 | 阿里云计算有限公司 | 执行计划优化方法、装置、设备及存储介质 |
CN113392126B (zh) * | 2021-08-17 | 2021-11-02 | 北京易鲸捷信息技术有限公司 | 基于分布式数据库的执行计划缓存及读取方法 |
CN113961586A (zh) * | 2021-10-20 | 2022-01-21 | 阿里云计算有限公司 | 一种sql语句的控制方法及装置 |
-
2021
- 2021-10-20 CN CN202111223426.XA patent/CN113961586A/zh active Pending
-
2022
- 2022-10-10 WO PCT/CN2022/124413 patent/WO2023066070A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023066070A1 (zh) * | 2021-10-20 | 2023-04-27 | 阿里云计算有限公司 | 一种sql语句的控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023066070A1 (zh) | 2023-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033123B (zh) | 基于大数据的查询方法、装置、计算机设备和存储介质 | |
US10762108B2 (en) | Query dispatching system and method | |
CN110020542B (zh) | 数据读写方法及装置、电子设备 | |
JP5744707B2 (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
CN110188573B (zh) | 分区授权方法、装置、设备及计算机可读存储介质 | |
CN108459913B (zh) | 数据并行处理方法、装置及服务器 | |
CN112235396B (zh) | 内容处理链路调整方法、装置、计算机设备和存储介质 | |
CN110807145A (zh) | 查询引擎获取方法、设备和计算机可读存储介质 | |
US20240232196A1 (en) | Intelligent query plan cache size management | |
CN112306383B (zh) | 执行作业的方法、计算节点、管理节点及计算设备 | |
CN115237885A (zh) | 数据存储系统的参数调整方法及装置 | |
CN111752961A (zh) | 一种数据处理方法及装置 | |
CN113961586A (zh) | 一种sql语句的控制方法及装置 | |
CN110231977A (zh) | 数据库的处理方法、装置、存储介质及电子装置 | |
CN111352915B (zh) | 一种机器学习系统、一种机器学习参数服务器及实现方法 | |
US7908268B2 (en) | Predictive database pool preparation | |
US20170337197A1 (en) | Rule management system and method | |
CN108932258A (zh) | 数据索引处理方法及装置 | |
CN111538491B (zh) | 数据事件处理方法、装置、设备和存储介质 | |
CN114647663A (zh) | 一种资源处理方法、装置、系统、电子设备及存储介质 | |
CN112100186A (zh) | 基于分布式系统的数据处理方法、装置、计算机设备 | |
CN112579705A (zh) | 元数据采集方法、装置、计算机设备和存储介质 | |
CN117056363B (zh) | 数据缓存方法、系统、设备以及存储介质 | |
CN113590579B (zh) | 一种基于数据仓库的根因分析方法、装置及系统 | |
WO2024119793A1 (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40067043 Country of ref document: HK |