CN110362404B - 一种基于sql的资源分配方法、装置和电子设备 - Google Patents
一种基于sql的资源分配方法、装置和电子设备 Download PDFInfo
- Publication number
- CN110362404B CN110362404B CN201910580464.7A CN201910580464A CN110362404B CN 110362404 B CN110362404 B CN 110362404B CN 201910580464 A CN201910580464 A CN 201910580464A CN 110362404 B CN110362404 B CN 110362404B
- Authority
- CN
- China
- Prior art keywords
- data
- data table
- estimated total
- accessed
- data volume
- 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
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/245—Query processing
- G06F16/2455—Query execution
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于SQL的资源分配方法、装置及电子设备,所述方法包括:为数据表创建数据库表;接收并提取SQL语句中的目标数据表名称;根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;根据所述待访问的预估总数据量计算并分配访问资源。通过本发明可以保证每个查询任务在执行过程中能够分配到匹配的资源,防止在查询过程中出现资源浪费或资源不够的情况。
Description
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及一种基于SQL的资源分配方法、装置、电子设备及计算机可读介质。
背景技术
在现代应用大数据的环境下,企业数据越来越多,服务用户规模越来越大,企业所使用的基础服务设备如计算存储节点(服务器)也呈几何级增长。在这些设备组成的大规模集群中,用户提交一个查询任务的时候,数据库客户端一般是通过向数据库服务器发送SQL(Structured Query Language,结构查询语言)查询命令,从数据库服务器获取查询结果。
通常情况下,集群资源是有限的,一个SQL查询任务分配的集群资源是固定的,由于不同的SQL查询命令执行过程中实际占用的集群资源不同,这就造成一些SQL查询命令在执行过程中占用多余资源,造成资源浪费,而一些SQL查询命令在执行过程中资源不够,影响查询进度。
发明内容
本发明旨在解决因不同SQL查询所需集群资源不同而造成查询过程中分配的资源不够或资源过多的技术问题。
为了解决上述技术问题,本发明第一方面提出一种基于SQL的资源分配方法,包括:
为数据表创建数据库表;
接收并提取SQL语句中的目标数据表名称;
根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;
根据所述待访问的预估总数据量计算并分配访问资源。
根据本发明的一种优选实施方式,根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量包括:
根据所述目标数据表名称查询对应的一个或多个数据库表,得到一个或多个子数据量;
若得到一个子数据量,则待访问的预估总数据量为所述一个子数据量;
若得到多个子数据量,则待访问的预估总数据量为所述多个子数据量之和。
根据本发明的一种优选实施方式,所述根据所述待访问的预估总数据量计算并分配访问资源包括:
根据所述待访问的预估总数据量计算并确定CPU内存量及CPU个数。
根据本发明的一种优选实施方式,所述方法还包括:
提取SQL语句中对目标数据表的计算操作;
所述根据所述待访问的预估总数据量计算并分配访问资源包括:
根据所述待访问的预估总数据量和所述计算操作所需数据量确定CPU内存量及CPU个数。
根据本发明的一种优选实施方式,所述计算操作包括对所述目标数据表的删除、插入、更新、关联和/或过滤。
根据本发明的一种优选实施方式,所述计算操作所需数据量预先存储于所述目标数据表对应的数据库表中。
根据本发明的一种优选实施方式,所述数据库表包含对应数据表的数据量大小。
根据本发明的一种优选实施方式,所述数据库表还包含对应数据表的数据存储位置。
根据本发明的一种优选实施方式,所述数据表是整个数据表、数据表中的数据列或者数据表中的数据行中的至少一种。
为解决上述技术问题,本发明第二方面提供一种基于SQL的资源分配装置,包括:
创建模块,用于为数据表创建数据库表;
提取模块,用于接收并提取SQL语句中的目标数据表名称;
查询模块,用于根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;
配置模块,用于根据所述待访问的预估总数据量计算并分配访问资源。
根据本发明的一种优选实施方式,所述查询模块包括:
子查询模块,用于根据所述目标数据表名称查询对应的一个或多个数据库表,得到一个或多个子数据量;
第一确定模块,用于若得到一个子数据量时,确定待访问的预估总数据量为所述一个子数据量;
第二确定模块,用于若得到多个子数据量,确定待访问的预估总数据量为所述多个子数据量之和。
根据本发明的一种优选实施方式,所述配置模块具体用于根据所述待访问的预估总数据量计算并确定CPU内存量及CPU个数。
根据本发明的一种优选实施方式,所述装置还包括:
第二提取模块,用于提取SQL语句中对目标数据表的计算操作;
所述配置模块具体用于根据所述待访问的预估总数据量和所述计算操作所需数据量确定CPU内存量及CPU个数。
根据本发明的一种优选实施方式,所述计算操作包括对所述目标数据表的删除、插入、更新、关联和/或过滤。
根据本发明的一种优选实施方式,所述数据库表包含对数据表计算操作所需数据量。
根据本发明的一种优选实施方式,所述数据库表包含对应数据表的数据量大小。
根据本发明的一种优选实施方式,所述数据库表还包含对应数据表的数据存储位置。
根据本发明的一种优选实施方式,所述数据表是整个数据表、数据表中的数据列或者数据表中的数据行中的至少一种。
为解决上述技术问题,本发明第三方面提供一种电子设备,包括:
处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述方法。
为解决上述技术问题,本发明第四方面提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述方法。
本发明通过给数据表创建包含该数据表数据量大小的数据库表,根据目标数据表名称查询对应数据库表确定待访问的预估总数据量,根据所述待访问的预估总数据量计算并分配访问资源。从而保证每个查询任务在执行过程中能够分配到匹配的资源,防止在查询过程中出现资源浪费或资源不够的情况。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明一种基于SQL的资源分配方法的流程示意图;
图2a是本发明根据目标数据表名称查询对应的一个数据库表确定待访问的预估总数据量步骤的示意图;
图2b是本发明根据目标数据表名称查询对应的多个数据库表确定待访问的预估总数据量步骤的示意图;
图3是本发明另一种基于SQL的资源分配方法的流程示意图;
图4是本发明为数据表创建数据库表步骤示意图;
图5是本发明接收并提取SQL语句中的目标数据表名称和对目标数据表的计算操作步骤示意图;
图6是本发明一种基于SQL的资源分配装置的架构示意图;
图7是根据本发明的一种电子设备的示例性实施例的结构框图;
图8是本发明的一个计算机可读介质实施例的示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
图1是本发明一种基于SQL的资源分配方法的流程示意图,如图1所示,本发明的方法包括以下步骤:
S1、为数据表创建数据库表;
其中,所述数据库表包含对应数据表的数据量大小。
例如,在MySQL数据库中包含多个数据表,为每一个数据表创建唯一对应的数据库表,所述数据库表包含对应数据表的数据量大小。
其中,所述数据表的数据量可以是整个数据表的数据量,也可以是数据表中每个数据列的数据量,还可以是数据表中每个数据行的数据量;所述数据库表可以只包含整个数据表的数据量大小,数据表中每个数据列的数据量大小,数据表中每个数据行的数据量大小中的一项或两项数据量信息,也可以包含整个数据表的数据量大小,数据表中每个数据列的数据量大小,以及数据表中每个数据行的数据量大小。
进一步的,数据库表中还可以包括和数据表的数据存储位置,通过数据表的存储位置可以直接找到数据表,方便查询。
S2、接收并提取SQL语句中的目标数据表名称;
例如,在MySQL数据库中,根据SELECT语句提取目标数据表名称;其中,目标数据表名称也可能是目标数据表的字段名称,或者数据表的列名称,本发明不做具体限定。
S3、根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;
本实施例中,一个查询任务可能需要查询一个或者多个数据表,则会解析出一个或者多个目标数据表名称,根据所述一个或者多个目标数据表名称会查询到对应的一个或者多个数据库表,待访问的预估总数据量就要根据对应的一个或者多个数据库表的数据量确定。具体的,本步骤包括:
S31、根据所述目标数据表名称查询对应的一个或多个数据库表,得到一个或多个子数据量;
如图2a,一个查询任务Q1只需要查询一个数据表R,则查询任务Q1解析出一个目标数据表名称q,查询与目标数据表名称q对应的数据库表W,得到一个子数据量m。
如图2b,一个查询任务Q2需要查询多个数据表Ri,则查询任务Q2解析出一个目标数据表名称qi,查询与目标数据表名称qi对应的数据库表Wi,得到多个子数据量mi。
S32、若得到一个子数据量,则待访问的预估总数据量为所述一个子数据量;
如图2a,待访问的预估总数据量为子数据量m。
S33、若得到多个子数据量,则待访问的预估总数据量为所述多个子数据量之和。
如图2b,待访问的预估总数据量为多个子数据量mi之和。
S4、根据所述待访问的预估总数据量计算并分配访问资源。
具体的,本步骤根据所述待访问的预估总数据量计算并确定CPU内存量及CPU个数,使所述CPU内存量与所述CPU个数乘积大于等于所述预估总数据量。例如,待访问的预估总数据量为100G,可以分配100个CPU,每个CPU配1G的内存。
图3为本发明另一实施例提供的基于SQL的资源分配方法的流程示意图;如图3所示,该方法包括以下步骤:
S301、为数据表创建数据库表;
其中,所述数据库表包含对应数据表的数据量大小和对应数据表的数据存储位置。
如图4,以MySQL数据库中的数据表A为例,为数据表A创建唯一对应的数据库表J,所述数据库表J包含整个数据表A的数据量大小,数据表A中每个数据列的数据量大小,以及数据表A中每个数据行的数据量大小。这样,在查询过程中,对资源的分配可以精确到数据行或数据列。数据库表J还包括数据表A的数据存储位置。
S302、接收并提取SQL语句中的目标数据表名称和对目标数据表的计算操作;
所述计算操作包括对所述目标数据表的删除、插入、更新、关联和/或过滤。
示例性的,如图5所示,在一个查询任务Q中,提取三个目标数据表名称q1、q2、q3和对q1和q2的关联操作;其中,q1为数据表的字段名称(即数据列名称),q3为数据表的数据行名称。
S303、根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;
如图5,数据表名称q1对应数据库表W1;数据表名称q2对应数据库表W2;数据表名称q3对应数据库表W3;在数据库表W1中查询q1字段名称对应的数据量大小得到子数据量m1,在数据库表W2中查询q2数据表名称对应的数据量大小得到子数据量m2,在数据库表W3中查询q3数据行名称对应的数据量大小得到子数据量m3,则查询任务Q的待访问预估总数据量为m1+m2+m3。
S304、根据所述待访问的预估总数据量和所述计算操作所需数据量计算并分配访问资源。
具体的,本步骤根据所述待访问的预估总数据量和所述计算操作所需数据量确定CPU内存量及CPU个数。使所述CPU内存量与所述CPU个数乘积大于等于所述预估总数据量和所述计算操作所需的数据量之和。其中,对数据表的所述查询、删除、插入、更新、关联和过滤操作所需数据量依次增大。对所述目标数据库的查询、删除、插入、更新、关联和过滤操作所需数据量可以预先存储在所述目标数据表对应的数据库表中。
如图5中,q1和q2的关联操作所需数据量可以存储在q1对应的数据库表W1中,则可以在数据库表W1中查询到q1和q2的关联操作所需数据量大小为子数据量s,则待访问的预估总数据量为m1+m2+m3+s,以m1+m2+m3+s为656G为例,可以分配101个CPU,100个CPU配置6G内存,1个CPU配置60G的内存。
本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由数据处理设备(包括计算机)执行的程序,即计算机程序。在该计算机程序被执行时,可以实现本发明提供的上述方法。而且,所述的计算机程序可以存储于计算机可读存储介质中,该存储介质可以是磁盘、光盘、ROM、RAM等可读存储介质,也可以是多个存储介质组成的存储阵列,例如磁盘或磁带存储阵列。所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。
下面描述本发明的装置实施例,该装置可以用于执行本发明的方法实施例。对于本发明装置实施例中描述的细节,应视为对于上述方法实施例的补充;对于在本发明装置实施例中未披露的细节,可以参照上述方法实施例来实现。
图6是本发明一种基于SQL的资源分配装置的架构示意图,如图6所示,该装置包括创建模块,提取模块,查询模块和配置模块,总的来说,所述创建模块用于为数据表创建数据库表;所述提取模块用于接收并提取SQL语句中的目标数据表名称;所述查询模块用于根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;所述配置模块用于根据所述待访问的预估总数据量计算并分配访问资源。
其中,所述数据库表包含对应数据表的数据量大小;进一步,所述数据库表还包含对应数据表的数据存储位置。所述数据表是整个数据表、数据表中的数据列或者数据表中的数据行中的至少一种。
在一种具体实施方式中,所述查询模块包括:
子查询模块,用于根据所述目标数据表名称查询对应的一个或多个数据库表,得到一个或多个子数据量;
第一确定模块,用于若得到一个子数据量时,确定待访问的预估总数据量为所述一个子数据量;
第二确定模块,用于若得到多个子数据量,确定待访问的预估总数据量为所述多个子数据量之和。
所述配置模块具体用于根据所述待访问的预估总数据量计算并确定CPU内存量及CPU个数。
在一种具体实施方式中,所述装置还包括:
第二提取模块,用于提取SQL语句中对目标数据表的计算操作;
所述配置模块具体用于根据所述待访问的预估总数据量和所述计算操作所需数据量确定CPU内存量及CPU个数。
所述计算操作包括对所述目标数据表的删除、插入、更新、关联和/或过滤。所述数据库表包含对数据表计算操作所需数据量。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图7是根据本发明的一种电子设备的示例性实施例的结构框图。图7显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,该示例性实施例的电子设备700以通用数据处理设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
其中,所述存储单元720存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元710执行,使得所述处理单元710执行本发明各种实施方式的步骤。例如,所述处理单元710可以执行如图1或图3所示的步骤。
所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备300(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备300与该电子设备700交互,和/或使得该电子设备700能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口750进行,还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,电子设备700中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图8是本发明的一个计算机可读介质实施例的示意图。如图8所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:为数据表创建数据库表;接收并提取SQL语句中的目标数据表名称;根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;根据所述待访问的预估总数据量计算并分配访问资源。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于SQL的资源分配方法,其特征在于,包括:
为数据表创建数据库表;所述数据库表包含对应数据表的数据量大小和对应数据表的数据存储位置;所述数据表的数据量是整个数据表的数据量、和/或数据表中每个数据列的数据量、和/或数据表中每个数据行的数据量;
接收并提取SQL语句中的目标数据表名称和SQL语句中对目标数据表的计算操作;
根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;
根据所述待访问的预估总数据量和所述计算操作所需数据量确定 CPU内存量及CPU个数;使所述CPU内存量与所述CPU个数乘积大于等于所述预估总数据量和所述计算操作所需的数据量之和;其中:所述计算操作所需数据量预先存储在所述目标数据表对应的数据库表中。
2.根据权利要求1所述的方法,其特征在于:根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量包括:
根据所述目标数据表名称查询对应的一个或多个数据库表,得到一个或多个子数据量;
若得到一个子数据量,则待访问的预估总数据量为所述一个子数据量;
若得到多个子数据量,则待访问的预估总数据量为所述多个子数据量之和。
3.根据权利要求1所述的方法,其特征在于:所述计算操作包括对所述目标数据表的删除、插入、更新、关联和/或过滤。
4.根据权利要求1所述的方法,其特征在于:所述计算操作所需数据量预先存储于所述目标数据表对应的数据库表中。
5.一种基于SQL的资源分配装置,其特征在于,包括:
创建模块,用于为数据表创建数据库表;所述数据库表包含对应数据表的数据量大小和对应数据表的数据存储位置;所述数据表的数据量是整个数据表的数据量、和/或数据表中每个数据列的数据量、和/或数据表中每个数据行的数据量;
提取模块,用于接收并提取SQL语句中的目标数据表名称和SQL语句中对目标数据表的计算操作;
查询模块,用于根据所述目标数据表名称,查询对应的一个或多个数据库表,确定待访问的预估总数据量;
配置模块,用于根据所述待访问的预估总数据量和所述计算操作所需数据量确定 CPU内存量及CPU个数;使所述CPU内存量与所述CPU个数乘积大于等于所述预估总数据量和所述计算操作所需的数据量之和;其中:所述计算操作所需数据量预先存储在所述目标数据表对应的数据库表中。
6.一种电子设备,包括:处理器;以及存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行根据权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580464.7A CN110362404B (zh) | 2019-06-28 | 2019-06-28 | 一种基于sql的资源分配方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580464.7A CN110362404B (zh) | 2019-06-28 | 2019-06-28 | 一种基于sql的资源分配方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362404A CN110362404A (zh) | 2019-10-22 |
CN110362404B true CN110362404B (zh) | 2022-08-23 |
Family
ID=68216106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910580464.7A Active CN110362404B (zh) | 2019-06-28 | 2019-06-28 | 一种基于sql的资源分配方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362404B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198766B (zh) * | 2020-01-06 | 2021-02-05 | 中科驭数(北京)科技有限公司 | 数据库访问操作部署方法、数据库访问方法及装置 |
CN113032277A (zh) * | 2021-04-16 | 2021-06-25 | 携程旅游网络技术(上海)有限公司 | 数据查询监测方法、装置、电子设备和存储介质 |
CN116991882B (zh) * | 2023-09-28 | 2023-12-01 | 成都新希望金融信息有限公司 | 基于业务优先级的查询优化方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908075A (zh) * | 2010-08-17 | 2010-12-08 | 上海云数信息科技有限公司 | 基于sql的并行计算系统及方法 |
EP2819030A1 (en) * | 2013-06-30 | 2014-12-31 | Pilab S.A. | Database hierarchy-independent data drilling |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5011006B2 (ja) * | 2007-07-03 | 2012-08-29 | 株式会社日立製作所 | リソース割当方法、リソース割当プログラム、および、リソース割当装置 |
CN106406987B (zh) * | 2015-07-29 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 一种集群中的任务执行方法及装置 |
CN105630934A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮电子信息产业股份有限公司 | 一种数据统计方法及系统 |
CN107291770B (zh) * | 2016-04-11 | 2021-04-02 | 中国移动通信集团山西有限公司 | 一种分布式系统中海量数据的查询方法及装置 |
US20180089324A1 (en) * | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
CN109324905B (zh) * | 2018-09-30 | 2021-03-30 | 拉卡拉支付股份有限公司 | 数据库操作方法、装置、电子设备及存储介质 |
-
2019
- 2019-06-28 CN CN201910580464.7A patent/CN110362404B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908075A (zh) * | 2010-08-17 | 2010-12-08 | 上海云数信息科技有限公司 | 基于sql的并行计算系统及方法 |
EP2819030A1 (en) * | 2013-06-30 | 2014-12-31 | Pilab S.A. | Database hierarchy-independent data drilling |
Non-Patent Citations (3)
Title |
---|
Exploiting statistics on query expressions for optimization;Nicolas Bruno;《Proceedings of the 2002 ACM SIGMOD international conference on Management of data》;20020603;第263-274页 * |
关于SQL数据库的性能优化问题的研究;刘芬;《软件》;20120615(第06期);全文 * |
基于SSD数据库负载的SQL能耗感知模型;李树;《计算机应用》;20181011;第39卷(第1期);第205-212页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110362404A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10585915B2 (en) | Database sharding | |
CN110362404B (zh) | 一种基于sql的资源分配方法、装置和电子设备 | |
US10915532B2 (en) | Supporting a join operation against multiple NoSQL databases | |
US8903814B2 (en) | Indexing timestamp with time zone value | |
US11308277B2 (en) | Memory preserving parse tree based compression with entropy coding | |
US20120260229A1 (en) | Software tool and method for generating a virtual appliance | |
US20180039419A1 (en) | Virtual storage pool | |
CN110975293A (zh) | 建立资源引用关系表的方法、装置、服务器及介质 | |
US10713228B2 (en) | Generating and accessing a data table | |
CN114090695A (zh) | 分布式数据库的查询优化的方法和装置 | |
CN110716960B (zh) | 一种数据库查询方法、装置、设备及存储介质 | |
US9679014B2 (en) | Generating and accessing a data table | |
US11074260B2 (en) | Space-efficient methodology for representing label information in large graph data for fast distributed graph query | |
CN113918602A (zh) | 一种数据缓存方法、装置和电子设备 | |
US9170796B2 (en) | Content space environment representation | |
CN111198880A (zh) | 一种基于redis的数据存储方法、装置及电子设备 | |
US10318509B2 (en) | Populating text indexes | |
WO2023241405A1 (en) | Database query processing with database clients | |
CN114124969A (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 |