CN117390064B - 一种基于可嵌入子图的数据库查询优化方法 - Google Patents
一种基于可嵌入子图的数据库查询优化方法 Download PDFInfo
- Publication number
- CN117390064B CN117390064B CN202311697041.6A CN202311697041A CN117390064B CN 117390064 B CN117390064 B CN 117390064B CN 202311697041 A CN202311697041 A CN 202311697041A CN 117390064 B CN117390064 B CN 117390064B
- Authority
- CN
- China
- Prior art keywords
- query
- sub
- queries
- database query
- cost
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000005457 optimization Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 abstract description 5
- 230000000694 effects Effects 0.000 abstract description 5
- 238000005265 energy consumption Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- WWYNJERNGUHSAO-XUDSTZEESA-N (+)-Norgestrel Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](CC)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 WWYNJERNGUHSAO-XUDSTZEESA-N 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明创造提供了一种基于可嵌入子图的数据库查询优化方法,该方法包括以下步骤:从批量的数据库查询操作中提取常见子查询;所述常见子查询为出现比例超过指定阈值的查询操作;计算所述常见子查询的查询代价,并将所述常见子查询作为子节点嵌入用于数据库查询的代价估计树中。本发明创造中,将出现比例较高的,已有代价估计的常见子查询嵌入代价估计树中,以避免进行数据库查询时对这些子查询进行反复的代价估计,进而最小化累积效应,并减少重复查询,实现数据库查询的低能耗和高精度。
Description
技术领域
本发明创造属于计算机技术领域,尤其是涉及一种基于可嵌入子图的数据库查询优化方法。
背景技术
随着互联网的迅速发展,各级媒体产生的数据规模呈指数式增长,数据重要性更是与日俱增,数据的存储、计算和分析是互联网时代离不开的节奏流程,基于数据库的联机事务处理OLTP和联机分析处理OLAP已是任何企业最重要的应用之一,而这些都离不开数据库的查询操作。
在数据库的查询操作中,查询优化是较为关键的一步。缺失了查询优化的步骤,查询将变得低效缓慢,而在数据规模达到TB及以上级别,特别是涉及到join操作的时候,盲目地执行查询计划如采用全表扫描而非索引带来的代价是极其高昂的。而具体到查询优化内部,查询优化又包含基数估计、代价估计和计划枚举等多方面实现。
基数估计是估算算子生成元组数目的能力,旨在使用数据的统计信息和一些关于数据分布、列相关性和连接关系的假设来获取算子生成的元组的数量,基数估计的结果也会被引入到成本估计中使用。代价估计一般可以被视为一个复杂的函数,它将之前估计的基数映射到执行计划的成本,映射细节与数据库自身状态紧密相关。计划枚举则可被视为一种探索语义等价连接顺序空间并以最小成本找到最佳顺序的算法。事实上,查询优化器很难在合理的时间内为复杂查询找到最优的执行计划,有很大的原因便在于上述三者的工作并不完善,比如基数估计的不准确、成本模型的错误以及枚举的计划空间过于庞大。
在这三者之中,代价估计模型担任着承上启下的重要角色,它依赖基数估计的输出,依据成本对一个查询计划进行优劣判断。在成本估计方面,基于成本的优化器几乎被当前所有的数据库系统采用。优化器使用计划枚举算法确定查询计划,并根据代价模型获得该计划的成本,最后选择成本最低的计划。
代价模型的主要思想是对于每一个物理算子,根据输入输出的基数,都会被赋予一个代价。在通常情况下代价一般由执行该算子需要的时间衡量,但在某些低能耗场景下算子占据的计算资源也会被考虑进代价成本中。对于具体计算代价的方式,可以采用传统方式计算,即对于不同的算子采用不同的公式,公式往往考虑了多个因素进行估算,例如顺序或随机页面获取的成本、处理元组的 CPU 成本和执行操作本身的成本等,这些因素与受查询影响的数据基数高度相关,此外还需要考虑每个因素的权重。
之前也有工作专注于成本模型调整,并在 IMDB 等相应数据集上进行了实验。但近几年的一些工作采用了基于学习的方式进行估算,这些方法考虑到传统技术不能有效地捕获不同列/表之间的相关性,因此无法提供高质量的估计。基于学习的方法包括了基于各类神经网络架构的技术(例如CNN、RNN、混合模型),它们通过使用深度神经网络捕获数据相关性来估计成本。
然而,有一些缺点是之前的技术无法避免的,一个缺点是误差过高,一些方法尝试采用树代价模型,使用叶子结点表示查询子计划,对叶子结点进行编码来计算子计划的代价,这样做的一个明显缺点是随着计算节点的上移,子节点在代价估计上的误差会不断累积至父节点,累积效应对于某些计划结构比较复杂的查询而言(如嵌套查询)是相当致命的;还有一个缺点是对部分重复查询有重复估计的情况。一个具体的例子是在实践中,企业面对的往往是大规模查询的批量处理场景和流式处理场景,在这些场景中,查询之间往往有较多关联,不同的查询内部可能存在着相同子查询,而对子查询的冗余操作如代价估计会导致一定的资源浪费,此外,也存在大量查询可以被抽象为同一个查询。对于数据库开发人员来说,在大规模上手动检测可重用查询是十分困难的。因此,如何在大规模图上确定常见子查询并对其进行更优的代价估计是有必要的。
发明内容
有鉴于此,本发明创造旨在提出一种基于可嵌入子图的数据库查询优化方法,以解决现有的数据库查询中,代价估计算法误差大,能耗高的问题。
为达到上述目的,本发明创造的技术方案是这样实现的:
一种基于可嵌入子图的数据库查询优化方法,包括以下步骤:
从批量的数据库查询操作中提取常见子查询;所述常见子查询为出现比例超过指定阈值的查询操作;
计算所述常见子查询的查询代价,并将所述常见子查询作为子节点嵌入用于数据库查询的代价估计树中。
进一步的,所述常见子查询通过以下方式确定:
根据预设的查询条件构建编码规则;
根据所述编码规则进行批量的数据库查询操作,生成表示不同查询结果的编码结果;
将相同的编码结果在总的编码结果中所占比例超过指定阈值的数据库查询操作定义为常见子查询。
进一步的,所述基于可嵌入子图的数据库查询优化方法还包括:
从批量的数据库查询操作中提取可近似子查询;所述可近似子查询为与所述常见子查询的相似度大于指定的相似率阈值的子查询;
计算所述可近似子查询的查询代价,并将所述可近似子查询作为子节点嵌入用于数据库查询的代价估计树中。
进一步的,所述相似度通过以下方式获得:
根据预设的查询条件构建编码规则;
根据所述编码规则进行批量的数据库查询操作,生成表示不同查询结果的编码结果;
根据两个编码结果的相似节点长度与编码结果的总长度的比值确定两个所述数据库查询操作的相似度。
进一步的,所述根据预设的查询条件构建编码规则的步骤,包括:
对条件列的属性进行多方面编码,该多方面包括列所在表、列类型、列上索引;
对操作符视其数量进行编码;
对值进行归一化编码。
一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行上述基于可嵌入子图的数据库查询优化方法。
一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行上述基于可嵌入子图的数据库查询优化方法。
一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述基于可嵌入子图的数据库查询优化方法。
相对于现有技术,本发明创造所述的基于可嵌入子图的数据库查询优化方法具有以下优势:
本发明创造所述的基于可嵌入子图的数据库查询优化方法,将出现比例较高的,已有代价估计的常见子查询嵌入代价估计树中,以避免进行数据库查询时对这些子查询进行反复的代价估计,进而最小化累积效应,并减少重复查询,实现数据库查询的低能耗和高精度。
附图说明
构成本发明创造的一部分的附图用来提供对本发明创造的进一步理解,本发明创造的示意性实施例及其说明用于解释本发明创造,并不构成对本发明创造的不当限定。在附图中:
图1示出了本发明创造实施例所述的基于可嵌入子图的数据库查询优化方法的流程图;
图2示出了本发明创造实施例所述的基于可嵌入子图的数据库查询优化方法的算法框架图;
图3示出了本发明创造实施例所述的基于可嵌入子图的数据库查询优化方法的代价估计计划及对应代价估计树;
图4示出了现有的树代价模型示意图;
图5a示出了本发明实施例中SQL No.2.a的查询计划树;
图5b示出了本发明实施例中SQL No.2.b的查询计划树。
具体实施方式
需要说明的是,在不冲突的情况下,本发明创造中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明创造。
图1示出了本公开实施例的基于可嵌入子图的数据库查询优化方法的流程图。如图1所示,基于可嵌入子图的数据库查询优化方法S100包括如下步骤:
步骤S110,从批量的数据库查询操作中提取常见子查询。
具体的,本方法提出了一套高可用、易理解的编码规则。该编码规则对不同类型节点提出了不同的编码方式和要求,节点类型包括条件列、操作符、值域、连接符(即join,用于在多表内进行查询,举例来讲SQL No.1’:select name from A join B where sex =male and age > 18; 就是同时在A表和B表中查询数据,不再局限于单表)等。对于具体的查询条件本身,进行多方面编码,包括对查询条件中查询列的自身属性(如列所在表、列类型、列上索引等)编码,对操作符视其数量进行编码,对实际value值本身,进行归一化编码。
示例性的,以SQL No.1:select name from A where sex = male and age > 18;为例,本方法将SQL划为三个部分,分别是结果列、查询范围和条件列,分别以select、from、where标识。
划分结果为“select name”、“from A”、“where sex = male and age > 18”。
假设数据库内共有n个表,以A表为首。每个表有m列,具体到A表有四个列,分别是name、sex、age、salary。由于表A中有四个列,本方法以one-hot编码,将n个表分别编码为0、1、2、…、n-1,表A中的四列name、sex、age、salary分别标示为0、1、2、3;而编码的过程就是将数字与实际值一一对应。
于是“select name”可以近似表示为0,“from A” 可以近似表示为0,进一步地,对于条件列涉及到了实际value值,由于sex分为male和female, age对应的是具体值,采用0、1表示sex中的male和female,整数值表示age的具体值,对于出现的操作符,也可以用编码表示,最终,“where sex = male and age > 18”近似表示为“0118”,其中第一个0代表male,第二个1代表操作符为“>”,最后的“18”则是条件中给出的需要满足筛选条件的实际value值。最终,“000118”这串字符即为编码结果,被用来表示SQL No.1:select name fromA where sex = male and age > 18的数据库查询操作结果。
本实施中,常见子查询被定义为在批量查询中出现比例大于指定阈值k的子查询,k由数据库管理员自行定义,k的大小决定了常见子查询的数量和稀有程度。假设处理10000个查询,其中有2500个编码结果包括“00118”序列,由上述编码规则的定义可知,“00118”序列代表着“from A where sex = male and age > 18”的子查询。假设k=0.2,而目前有2500条查询包括“from A where sex = male and age > 18”这样的子查询,那么这样的子查询出现比例是2500/10000=0.25,大于k,所以该子查询可以被认为是常见子查询。
本实施例还设定了可近似子查询,可近似子查询被定义为可与常见子查询近似的子查询。具体的,通过相似率ρ表示两个子查询的相似度,ρ越大,相似度越高,ρ由编码结果相似节点长度与编码结果总长度的比值决定。采用k-means聚类方法,将编码结果与常见子查询的相似度大于指定的相似率阈值p的子查询记为可近似子查询。
示例性的,给定两个查询,编码结果分别是“000111”和“000118”,可以通过比对看出,两个编码结果仅在后两位上有所不同——分别对应11和18,即对age列的查询条件有所差异,而在其他方面如查询范围和其余查询条件中则是相同的。设ρ= 0.3,总编码结果的长度为6,该两个编码结果的相同编码长度为5,占比5/6>ρ,则认为“00111”这串字符串代表的子查询也是常见的,“from A where sex = male and age > 11”的SQL语句被认为是和“from A where sex = male and age > 18”相近的子查询,即可近似子查询。
可近似子查询并不完全等同于常见子查询,因为涉及到查询中的实际value值不同,但它们与常见子查询高度相似,代价估计结果也相近,因此可以直接根据常见子查询的代价乘以一个相似率ρ比例,直接获得代价估计结果,即,其代价cost’等于p*cost,这样做的优势同样是减少了代价估计树从底层逐层向上传递代价估计结果的步骤,保证精度的同时加快代价估计的效率。
步骤S120,计算所述常见子查询的查询代价,并将所述常见子查询作为子节点嵌入用于数据库查询的代价估计树中。
本实施例中,算法会首先计算出常见子查询的代价,如执行常见子查询“00118”的代价,再根据相似率ρ计算出可近似子查询的代价。设执行常见子查询“00118”的代价为cost,则可计算出可近似子查询的代价为cost’= cost * ρ。
示例性的,给定SQL No.2:select name from A where sex = male and age >18 and salary ≥ 7000;其有很多种执行计划:
如计划A:
将SQL No.2语句拆分成为 No.2.a select name from A where sex = male andage > 18和 No.2.b select name from A where salary ≥ 7000;
将SQL No.2.a和No.2.b的查询结果取交集便是SQL No.2的结果。
或者计划B:
将SQL No.2语句拆分成为 No.2.c select name from A where sex = male 和No.2.d select name from A where age > 18 and salary ≥ 7000;
将SQL No.2.c和No.2.d的查询结果取交集便是SQL No.2的结果。
图5a示出了本发明实施例中SQL No.2.a的查询计划树,图5b示出了本发明实施例中SQL No.2.b的查询计划树。查询计划树是根据查询计划生成的一棵树,与代价估计树高度类似。区别在于代价估计树自下到上计算着每个节点的代价,向上传递底层算子执行的代价,最后到上层汇总得出总代价,参考图4。查询计划树代表着查询计划,自下到上执行着每个节点对应的步骤。
针对SQL No.2,若计划A中的No.2.a被认定为常见子查询,计划B中不存在常见子查询,则算法会优先选择计划A(见图3),因为该常见子查询的代价已经被提前估计。相比没有利用常见子查询的计划B效率更快且准确性更高。
本实施例提供的基于可嵌入子图的数据库查询优化方法,查询过程中,以物理算子为节点,自顶向下地对执行计划进行划分,并自底向上地对子计划进行代价估计计算,向上递归直至根节点。与之前不同的是,本方法考虑到了树代价模型的累积效应以及代价模型本身与工作负载的强关联性,以最小化累积效应和减少重复查询为目标,并利用子查询涉及节点少、训练样本多,更易于训练的特点,以编码结果在查询内部挖掘相同或近似子查询,对出现次数多的子查询(常见子查询和可近似子查询)单独建立子模型以完成估计,并将上述子查询作为整体嵌入进不同的查询内部,将已有的代价估计结果向上返回,无需再次计算,且降低对子查询本身的代价估计偏差,进而降低总体估计误差,从而实现低能耗、高精度的代价估计及数据库查询操作。
举例来讲,考虑这样一个复杂查询,它可以视为SQL No.1查询的进阶。
SQL No.3 :select name, max(salary) from A where age > 18 and salary≥ 7000 group by sex
SQL No.3在SQL No.1上新增了一些算子(算子也可以被称为操作符,对数据做的任何操作都可以被称为算子/操作符,比如a+b中的+可以算作是一个算子)。新增的算子包括max和group by,含义分别是求取最大值和按组分类,相同的值算作一类,group by sex就是按性别分类,由于性别只分男女,换言之就是男女分别统计。上述SQL语句的含义是统计年龄大于18,薪资大于等于7000中薪资最大的人的年龄和薪资,男女分别统计。
回顾上文,代价估计是为了给每个查询计划做一个标注,使得优化器选择查询代价最低的查询计划,使得查询更好地执行。而代价估计显然不能是将所有计划都执行一遍得出的实际结果,这样做花销过高,而是根据SQL语句和软硬件信息相结合的出的大概花销的估计结果,而估计则必然存在误差。
而之所以要提出SQL No.3这样一个复杂查询,是为了更好地模拟现实环境。现实环境中一条SQL具有更多的算子,每个算子和对应条件列都是代价估计的关键,而算子之间往往相互嵌套,假设每个算子的代价估计误差是10%,由于上层算子需要下层算子的结果,而下层算子的误差会传递到上层算子,造成这10%误差不断地进一步地放大,这就造成了估计误差的叠加,如图4所示。
查询优化器会分析SQL语句,按照逻辑顺序生成代价估计树,代价估计树从底部开始进行估计,对于每个算子给予初步的代价估计,随后将已有代价拿到上层算子(箭头指向的父节点)继续进行估计,由于算子估计过程中不可避免地会产生误差,误差会从底层逐渐累积到上层,这也是很多基于树方法的代价估计方法不可避免的问题,即随着算子的增多,误差逐渐增大,以至于到最后由于误差太大,估计结果已经完全不可以接受了。
我们的做法是筛选出常见子查询和可近似子查询,单独建模来模拟代价估计,将部分子查询看做一个整体,第一个优势在于单独建模提升了子查询的精度,而且估计结果稳定,减少了代价累积的过程,第二个优势则在于出现子查询的查询不用再从底层算子开始进行代价估计,直接将子查询视为一个整体,将子查询的代价结果直接代入就好,在此过程中子查询被视为一个完整图中的子图,可以嵌入到任意出现子查询的查询中,提高精度,减少耗时。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于可嵌入子图的数据库查询优化方法,其特征在于:包括以下步骤:
从批量的数据库查询操作中提取常见子查询;所述常见子查询为出现比例超过指定阈值的查询操作;
计算所述常见子查询的查询代价,并将所述常见子查询作为子节点嵌入用于数据库查询的代价估计树中;
查询过程中,所述代价估计树以物理算子为节点,自顶向下地对查询计划进行划分,并自底向上地对划分出的子查询计划进行代价估计计算,向上递归直至根节点;
代价估计计算过程中,所述代价估计树会优先选择具有所述常见子查询的子查询计划。
2.根据权利要求1所述的基于可嵌入子图的数据库查询优化方法,其特征在于:所述常见子查询通过以下方式确定:
根据预设的查询条件构建编码规则;
根据所述编码规则进行批量的数据库查询操作,生成表示不同查询结果的编码结果;
将相同的编码结果在总的编码结果中所占比例超过指定阈值的数据库查询操作定义为常见子查询。
3.根据权利要求1所述的基于可嵌入子图的数据库查询优化方法,其特征在于,还包括:
从批量的数据库查询操作中提取可近似子查询;所述可近似子查询为与所述常见子查询的相似度大于指定的相似率阈值的子查询;
计算所述可近似子查询的查询代价,并将所述可近似子查询作为子节点嵌入用于数据库查询的代价估计树中。
4.根据权利要求3所述的基于可嵌入子图的数据库查询优化方法,其特征在于:所述相似度通过以下方式获得:
根据预设的查询条件构建编码规则;
根据所述编码规则进行批量的数据库查询操作,生成表示不同查询结果的编码结果;
根据两个编码结果的相似节点长度与编码结果的总长度的比值确定两个所述数据库查询操作的相似度。
5.根据权利要求2或4所述的基于可嵌入子图的数据库查询优化方法,其特征在于:所述根据预设的查询条件构建编码规则的步骤,包括:
对条件列的属性进行多方面编码,该多方面包括列所在表、列类型、列上索引;
对操作符视其数量进行编码;
对值进行归一化编码。
6.一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于:所述处理器用于执行上述权利要求1-5任一所述的基于可嵌入子图的数据库查询优化方法。
7.一种服务器,其特征在于:包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行如权利要求1-5任一所述的基于可嵌入子图的数据库查询优化方法。
8.一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-5任一项所述的基于可嵌入子图的数据库查询优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311697041.6A CN117390064B (zh) | 2023-12-12 | 2023-12-12 | 一种基于可嵌入子图的数据库查询优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311697041.6A CN117390064B (zh) | 2023-12-12 | 2023-12-12 | 一种基于可嵌入子图的数据库查询优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117390064A CN117390064A (zh) | 2024-01-12 |
CN117390064B true CN117390064B (zh) | 2024-03-19 |
Family
ID=89468779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311697041.6A Active CN117390064B (zh) | 2023-12-12 | 2023-12-12 | 一种基于可嵌入子图的数据库查询优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117390064B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324724A (zh) * | 2013-06-26 | 2013-09-25 | 华为技术有限公司 | 数据处理方法及装置 |
CN106484734A (zh) * | 2015-09-01 | 2017-03-08 | 天脉聚源(北京)科技有限公司 | 一种数据查询缓存方法及系统 |
CN111540468A (zh) * | 2020-04-21 | 2020-08-14 | 重庆大学 | 一种诊断原因可视化的icd自动编码方法与系统 |
CN112256727A (zh) * | 2020-10-19 | 2021-01-22 | 东北大学 | 基于人工智能技术的数据库查询处理及优化方法 |
CN113010539A (zh) * | 2019-12-20 | 2021-06-22 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN113515539A (zh) * | 2021-06-02 | 2021-10-19 | 清华大学 | 一种数据库中数据的查询方法 |
CN115391424A (zh) * | 2022-08-26 | 2022-11-25 | 北京人大金仓信息技术股份有限公司 | 数据库查询的处理方法、存储介质与计算机设备 |
CN116304213A (zh) * | 2023-03-20 | 2023-06-23 | 中国地质大学(武汉) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053989A (zh) * | 2009-10-30 | 2011-05-11 | 国际商业机器公司 | 用于确定要被物化的节点的方法和系统 |
US9152670B2 (en) * | 2012-12-20 | 2015-10-06 | Teradata Us, Inc. | Estimating number of iterations or self joins required to evaluate iterative or recursive database queries |
US11558067B2 (en) * | 2020-05-19 | 2023-01-17 | Sap Se | Data compression techniques |
US20230076923A1 (en) * | 2021-09-07 | 2023-03-09 | International Business Machines Corporation | Semantic search based on a graph database |
-
2023
- 2023-12-12 CN CN202311697041.6A patent/CN117390064B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324724A (zh) * | 2013-06-26 | 2013-09-25 | 华为技术有限公司 | 数据处理方法及装置 |
CN106484734A (zh) * | 2015-09-01 | 2017-03-08 | 天脉聚源(北京)科技有限公司 | 一种数据查询缓存方法及系统 |
CN113010539A (zh) * | 2019-12-20 | 2021-06-22 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN111540468A (zh) * | 2020-04-21 | 2020-08-14 | 重庆大学 | 一种诊断原因可视化的icd自动编码方法与系统 |
CN112256727A (zh) * | 2020-10-19 | 2021-01-22 | 东北大学 | 基于人工智能技术的数据库查询处理及优化方法 |
CN113515539A (zh) * | 2021-06-02 | 2021-10-19 | 清华大学 | 一种数据库中数据的查询方法 |
CN115391424A (zh) * | 2022-08-26 | 2022-11-25 | 北京人大金仓信息技术股份有限公司 | 数据库查询的处理方法、存储介质与计算机设备 |
CN116304213A (zh) * | 2023-03-20 | 2023-06-23 | 中国地质大学(武汉) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 |
Non-Patent Citations (2)
Title |
---|
基于CMP的高性能数据库查询优化算法的研究;陈永恒;,《中国博士学位论文全文数据库信息科技辑》;45-68 * |
基于CMP的高性能数据库查询优化算法的研究;陈永恒;《中国博士学位论文全文数据库信息科技辑》;20120815;45-68 * |
Also Published As
Publication number | Publication date |
---|---|
CN117390064A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7509311B2 (en) | Use of statistics on views in query optimization | |
US8712972B2 (en) | Query optimization with awareness of limited resource usage | |
US7797286B2 (en) | System and method for externally providing database optimizer statistics | |
US9244974B2 (en) | Optimization of database queries including grouped aggregation functions | |
US7987180B2 (en) | Classification-based method and apparatus for string selectivity estimation | |
CN103927346B (zh) | 基于数据量的查询连接方法 | |
US8682875B2 (en) | Database statistics for optimization of database queries containing user-defined functions | |
EP3014488B1 (en) | Incremental maintenance of range-partitioned statistics for query optimization | |
US20090193042A1 (en) | System and computer program product for automated design of row compression on tables in a relational database | |
US9720986B2 (en) | Method and system for integrating data into a database | |
EP3929763B1 (en) | Database access methods and apparatuses | |
US10210280B2 (en) | In-memory database search optimization using graph community structure | |
WO2018201916A1 (zh) | 数据查询的方法、装置和数据库系统 | |
US10466936B2 (en) | Scalable, multi-dimensional search for optimal configuration | |
US20230107652A1 (en) | Missing data-based indexing in database systems | |
Kipf et al. | Estimating filtered group-by queries is hard: Deep learning to the rescue | |
JP2005100392A (ja) | クエリ処理操作中に補助属性を用いてクエリをリライトするための方法および装置 | |
US20030167275A1 (en) | Computation of frequent data values | |
CN114625748A (zh) | Sql查询语句的生成方法、装置、电子设备及可读存储介质 | |
CN115794833A (zh) | 数据处理方法、服务器和计算机存储介质 | |
CN117290376A (zh) | 基于大语言模型的两阶段Text2SQL模型、方法与系统 | |
CN117390063A (zh) | 一种基于Listwise排序学习的数据库查询器优化方法 | |
CN117390064B (zh) | 一种基于可嵌入子图的数据库查询优化方法 | |
CN108536819B (zh) | 整型列与字符串比较的方法、装置、服务器及存储介质 | |
US11762831B2 (en) | Adaptive sparse indexing in cloud-based data warehouses |
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 |