CN114138798B - 查询结果命中概率估计系统、方法、电子设备及介质 - Google Patents
查询结果命中概率估计系统、方法、电子设备及介质 Download PDFInfo
- Publication number
- CN114138798B CN114138798B CN202210111026.8A CN202210111026A CN114138798B CN 114138798 B CN114138798 B CN 114138798B CN 202210111026 A CN202210111026 A CN 202210111026A CN 114138798 B CN114138798 B CN 114138798B
- Authority
- CN
- China
- Prior art keywords
- sub
- hit probability
- query condition
- attribute
- query
- 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 52
- 238000004364 calculation method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000000306 component Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种查询结果命中概率估计系统、方法、电子设备及介质,所述系统包括:子表获取模块,获取第一表和第二表的连接表的第一子表,所述第一子表包含第一表和第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;子查询条件获取模块,根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;命中概率获取模块,获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率,根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
Description
技术领域
本公开涉及数据库技术领域,具体涉及一种查询结果命中概率估计系统、方法、电子设备及介质。
背景技术
基数估计(Cardinality Estimation,CardEst)是查询优化器的核心组件,其在数据库管理系统(DatabaseManagementSystem,DBMS)的高质量查询计划生成中发挥着重要作用。然而,如何针对通过连接多个表得到的连接表进行CardEst,即如何估计连接表上的查询结果命中概率的问题,尚未得到广泛解决。目前的方法要么依赖独立性假设,导致对模型设计者经验的依赖性较强且估计准确性较低,要么应用计算量大的技术例如直接在全外连接表上构建大型模型,导致成本较高且可扩展性差。同时,现有的CardEst方法往往被设计为优化特定的目标,例如推理速度或估计精度,无法适应不同场合的需求。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种查询结果命中概率估计系统、方法、电子设备及介质。
第一方面,本公开实施例中提供了一种查询结果命中概率估计系统,包括:
子表获取模块,被配置为获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
子查询条件获取模块,被配置为根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
命中概率获取模块,被配置为获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率,根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
根据本公开的实施例,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:
获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;
获取所述第一出现次数在所述第二子表中的期望值;
获取所述第一子查询条件在所述第二子表中的命中概率;
根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
根据本公开的实施例,所述根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率,包括:
针对所述第一交集中的每个第二子表,获取所述第一子查询条件在所述第二子表中的命中概率与所述第一出现次数在所述第二子表中的期望值的第一乘积;
根据所述第一交集中所有第二子表的第一乘积之和、所述第一交集中的记录数、所述第一子表的记录数,确定所述第一命中概率。
根据本公开的实施例,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:
获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;
获取所述第二出现次数在所述第三子表中的期望值;
获取所述第二子查询条件在所述第三子表中的命中概率;
根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
根据本公开的实施例,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,包括:
针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;
根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
根据本公开的实施例,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,包括:
获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;
根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;
获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;
根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
根据本公开的实施例,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,包括:
获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;
获取所述第三出现次数在所述第五子表中的期望值;
获取所述第三子查询条件在所述第五子表中的命中概率;
根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
根据本公开的实施例,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,包括:
获取所子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;
获取所述第四出现次数在所述第六子表中的期望值;
获取所述第四子查询条件在所述第六子表中的命中概率;
根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
根据本公开的实施例,所述获取第一表和第二表的连接表的第一子表,包括:
将所述连接表作为所述第一子表,在所述子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;
将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;
重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值。
第二方面,本公开实施例中提供了一种查询结果命中概率估计方法。
具体地,所述查询结果命中概率估计方法方法,包括:
获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率;
根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
根据本公开的实施例,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:
获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;
获取所述第一出现次数在所述第二子表中的期望值;
获取所述第一子查询条件在所述第二子表中的命中概率;
根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
根据本公开的实施例,其中,所述根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率,包括:
针对所述第一交集中的每个第二子表,获取所述第一子查询条件在所述第二子表中的命中概率与所述第一出现次数在所述第二子表中的期望值的第一乘积;
根据所述第一交集中所有第二子表的第一乘积之和、所述第一交集中的记录数、所述第一子表的记录数,确定所述第一命中概率。
根据本公开的实施例,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:
获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;
获取所述第二出现次数在所述第三子表中的期望值;
获取所述第二子查询条件在所述第三子表中的命中概率;
根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
根据本公开的实施例,其中,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,包括:
针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;
根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
根据本公开的实施例,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,包括:
获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;
根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;
获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;
根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
根据本公开的实施例,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,包括:
获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;
获取所述第三出现次数在所述第五子表中的期望值;
获取所述第三子查询条件在所述第五子表中的命中概率;
根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
根据本公开的实施例,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,包括:
获取所子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;
获取所述第四出现次数在所述第六子表中的期望值;
获取所述第四子查询条件在所述第六子表中的命中概率;
根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
根据本公开的实施例,所述获取第一表和第二表的连接表的第一子表,包括:
将所述连接表作为所述第一子表,在所述子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;
将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;
重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值。
第三方面,本公开实施例中提供了一种查询结果命中概率估计装置。
具体地,所述查询结果命中概率估计装置,包括:
第一获取模块,被配置为获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
第二获取模块,被配置为根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
第三获取模块,被配置为获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率;
确定模块,被配置为根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
根据本公开的实施例,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:
获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;
获取所述第一出现次数在所述第二子表中的期望值;
获取所述第一子查询条件在所述第二子表中的命中概率;
根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
根据本公开的实施例,其中,所述根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率,包括:
针对所述第一交集中的每个第二子表,获取所述第一子查询条件在所述第二子表中的命中概率与所述第一出现次数在所述第二子表中的期望值的第一乘积;
根据所述第一交集中所有第二子表的第一乘积之和、所述第一交集中的记录数、所述第一子表的记录数,确定所述第一命中概率。
根据本公开的实施例,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:
获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;
获取所述第二出现次数在所述第三子表中的期望值;
获取所述第二子查询条件在所述第三子表中的命中概率;
根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
根据本公开的实施例,其中,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,包括:
针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;
根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
根据本公开的实施例,其中,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,包括:
获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;
根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;
获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;
根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
根据本公开的实施例,其中,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,包括:
获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;
获取所述第三出现次数在所述第五子表中的期望值;
获取所述第三子查询条件在所述第五子表中的命中概率;
根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
根据本公开的实施例,其中,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,包括:
获取所子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;
获取所述第四出现次数在所述第六子表中的期望值;
获取所述第四子查询条件在所述第六子表中的命中概率;
根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
根据本公开的实施例,所述获取第一表和第二表的连接表的第一子表,包括:
将所述连接表作为所述第一子表,在所述子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;
将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;
重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值。
第四方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第二种方面中任一项所述的方法。
第五方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第二种方面中任一项所述的方法。
第六方面,本公开实施例中提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第二种方面中任一项所述的方法步骤。
根据本公开实施例提供的技术方案,首先获取第一表和第二表的连接表的第一子表,然后根据查询条件和第一表的属性获取第一子查询条件,并根据所述第一子查询条件获取第一命中概率,根据查询条件和第二表的属性获取第二子查询条件,并根据所述第二子查询条件获取第二命中概率,最后基于所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率,实现了不同表之间相关性的解耦,可无损地合并表单的CardEst结果以预测连接查询大小,计算快捷方便,部署灵活,通用性好。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1A示出根据本公开实施例的查询结果命中概率估计系统的框图;
图1B示出根据本公开实施例的查询结果命中概率估计方法的流程图;
图2示出根据本公开实施例的查询结果命中概率估计装置的结构图;
图3示出根据本公开的实施例的电子设备的结构框图;
图4示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
图5示出适于用来实现根据本公开实施例的方法的分布式数据库系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
在本公开中,对用户信息或用户数据的获取均为经用户授权、确认,或由用户主动选择的操作。
如前所述,如何针对通过连接多个表得到的连接表进行CardEst,即如何估计连接表上的查询结果命中概率的问题,尚未得到广泛解决。目前的方法要么依赖独立性假设,导致对模型设计者经验的依赖性较强且估计准确性较低,要么应用计算量大的技术例如直接在全外连接表上构建大型模型,导致成本较高且可扩展性差。同时,现有的CardEst方法往往被设计为优化特定的目标,例如推理速度或估计精度,无法适应不同场合的需求。
鉴于此,本公开实施例提供了一种查询结果命中概率估计方法,首先获取第一表和第二表的连接表的第一子表,然后根据查询条件和第一表的属性获取第一子查询条件,并根据所述第一子查询条件获取第一命中概率,根据查询条件和第二表的属性获取第二子查询条件,并根据所述第二子查询条件获取第二命中概率,最后基于所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率,实现了不同表之间相关性的解耦,可无损地合并单表的CardEst结果以预测连接查询大小,计算快捷方便,部署灵活,通用性好。
图1A示出根据本公开的实施例的查询结果命中概率估计系统的框图。
如图1A所示,查询结果命中概率估计系统100包括子表获取模块110、子查询条件获取模块120、命中概率获取模块130。
根据本公开的实施例,查询结果命中概率估计系统100可以通过软件、硬件或固件的方式实现。
根据本公开的实施例,子表获取模块110被配置为获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值。
子查询条件获取模块120被配置为根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
命中概率获取模块130被配置为获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率,根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
图1B示出根据本公开的实施例的查询结果命中概率估计方法的流程图。如图1B所示,所述查询结果命中概率估计方法包括以下步骤S101-S104:
在步骤S101中,获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
在步骤S102中,根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
在步骤S103中,获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率;
在步骤S104中,根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
在本公开实施例中,所述查询结果命中概率估计系统和方法可用于连接表的条件查询,所述连接表包括第一表和第二表,所述第一表可以是单表,也可以是连接表,同样的,所述第二表也可以是单表或连接表。当在连接表中进行条件查询时,由于组成连接表的第一表和第二表各自的属性之间具有相关性,导致在进行查询结果命中概率估计时,需要对条件概率进行计算,计算复杂度高且无法同时满足计算准确度和计算成本的要求。
具体地,假设所述第一表用T表示,所述第一表具有k个属性A={A1,A2,...,Ak},所述第二表用S表示,所述第二表具有n个属性B={B1,B2,...,Bn},所述第一表和第二表的连接表为当估计在所述连接表W中命中查询条件Q的查询结果的概率时,需要计算其中,是指在连接表W中,查询条件Q的命中概率,是指在连接表W中,以查询条件Q中与属性A相关的部分作为查询条件的命中概率,是指在连接表W中,以查询条件Q中与属性A相关的部分作为查询条件在以查询条件Q中与属性B相关的部分作为查询条件而命中的结果中的命中概率。当连接表W的数据量较大时,对的估计可能会非常复杂。
为解决上述问题,在本公开实施例中,通过创建第一表和第二表的连接表的第一子表,以使所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值,从而在连接表中实现了第一表的属性与第二表的属性之间的局部独立性,在每一局部即上述第一子表中分别估计所述查询条件的命中概率,再将每一子表中获得的命中概率组合,从而获得在连接表中所述查询条件的命中概率,大幅降低了计算成本。
在本公开实施例中,所述第一表和第二表的连接表的第一子表可以使用子表获取模块110通过以下方式获取:将所述连接表作为所述第一子表,在所述子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值。
具体地,可以首先将所述连接表W作为第一子表L,在所述第一子表L中获取所述第一表T中的任一属性Ai与所述第二表S中的任一属性Bj的相关性值,确定所述相关性值最高的属性对{Ai1,Bj1},其中,所述相关性值可通过随机相关系数(Randomized DependenceCoefficient,RDC值)来表征,也可以通过其他参数来表征,此处不做限制。将相关性值最高的属性对中的第一表的属性Ai1作为指定属性,根据所述指定属性Ai1划分所述第一子表L,得到更新后的第一子表L1、L2、...、Lt,t为正整数;针对其中每一第一子表,重复执行所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到获得的每一第一子表中,所述第一表T中的属性Ai与所述第二表S中的属性Bj的相关性值小于第一预设阈值,其中,所述第一预设阈值可以根据需要设置,以使所述属性Ai与Bj满足相关性要求,此处不做限制。所述第一表T中的属性Ai与所述第二表S中的属性Bj的相关性值小于第一预设阈值可以是,所述第一表T中的属性Ai与所述第二表S中的属性Bj的相关性值的最大值小于第一预设阈值,或者所述第一表T中的任一属性Ai与所述第二表S中的任一属性Bj的相关性值均小于第一预设阈值,或者第一表T中的属性Ai与所述第二表S中的属性Bj的相关性值的均值小于第一预设阈值,此处不做限制。
采用这样的方式,可以将所述连接表W划分为多个第一子表L1、L2、...、Lt,在任一所述第一子表中,第一表T中的属性Ai与所述第二表S中的属性Bj的相关性值小于第一预设阈值,此时可以认为在任一所述第一子表中,第一表T中的任一属性Ai与所述第二表S中的任一属性Bj相互独立。
在本公开实施例中,所述根据查询条件和所述第一表的属性获取第一子查询条件是指,确定所述查询条件中与所述第一表的属性相关的查询条件为第一查询子条件,所述根据所述查询条件和所述第二表的属性获取第二子查询条件是指,确定所述查询条件中与所述第二表的属性相关的查询条件为第二查询子条件。例如,可以使用子查询条件获取模块120根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件。具体地,若查询条件为AB={Ae,Am,Bf},则由于所述查询条件中与所述第一表的属性相关的查询条件为Ae和Am,因此确定所述第一查询子条件为A’={Ae,Am},同时,由于所述查询条件中与所述第二表的属性相关的查询条件为Bf,因此确定所述第二查询子条件为B’={Bf}。
根据本公开的实施例,可以使用命中概率获取模块130获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率,根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
在本公开实施例中,所述获取所述第一子查询条件在所述第一子表中的第一命中概率是指,计算所述第一查询条件在所述第一子表中的第一命中概率所述获取所述第二子查询条件在所述第一子表中的第二命中概率是指,计算所述第二查询条件在所述第一子表中的第二命中概率此时,可采用任意现有CardEst方法计算所述第一命中概率和所述第二命中概率,例如针对要求估计时间快的应用场景如联机事务处理OLTP,可以采用速度快的CardEst算法,针对要求估计精度高的应用场景如联机分析处理OLAP,可以采用精度高的CardEst算法。
在本公开实施例中,所述根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率是指,通过将上述在每一第一子表中获取的第一命中概率和第二命中概率的乘积求和,确定所述查询条件在所述第一表和第二表的连接表中的命中概率,此时
根据本公开实施例提供的技术方案,通过将第一表和第二表的连接表划分为多个具有局部独立性的第一子表,实现了不同表之间相关性的解耦,可无损地合并表单的CardEst结果以预测连接查询大小,计算快捷方便,部署灵活,通用性好。
采用前述方式,将计算查询条件AB的在连接表W中的命中概率分解成,在多个具有局部独立性的第一子表L中分别计算第一子查询条件A’和第二子查询条件B’的命中概率。然而,计算所述第一子查询条件A’在所述第一子表L中的命中概率仍然具有较高的复杂度。
为解决上述问题,在本公开实施例中,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,可以包括:获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;获取所述第一出现次数在所述第二子表中的期望值;获取所述第一子查询条件在所述第二子表中的命中概率;根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
根据本公开的实施例,假设第一表T的T1部分与第二表S的S1部分连接得到第一子表L,则第一表T的T1部分是第一交集Q1。可以在所述第一交集Q1中增设一列扇出(fanout)列,所述扇出列中记载第一交集Q1中的记录在所述第一子表L中出现的次数。
如表1所示,假设第一表T的T1部分(即,第一交集Q1)中具有属性P,第二表S的S1部分中具有属性Q,将所述第一交集Q1和第二交集Q2基于ID连接得到第一子表L;确定所述第一交集Q1的每一条记录在所述第一子表L中出现的次数,例如ID1的记录在第一子表L中出现了3次,因此所述第一交集Q1的扇出列与该记录1相对应的行中记录的数值为3,以此类推。
表1
此时,由于在所述第一交集Q1中,第一表的属性与f仍然可能具有相关性,因此可以采取与上述从连接表W中获取第一子表L相同的方法,将所述第一交集Q1迭代进行划分为多个第二子表L’,直至最终获得的第二子表L’中,所述第一表的属性与所述第一出现次数之间的相关性小于第二预设阈值。其中,第二预设阈值的设置方法与第一预设阈值相同,第二预设阈值的取值可以与所述第一预设阈值相同,也可以不同。
采用这样的方式,可以将计算转换为,计算其中,F1为第一交集的记录数,F2为第一子表中的记录数,E[F]是第二子表中f的期望值,该期望值可以通过对第二子表的f随机抽样后取平均值得到。至此,通过针对所述第一交集Q1中的每个第二子表L’,获取所述第一子查询条件A’在所述第二子表L’中的命中概率与所述第一出现次数在所述第二子表L’中的期望值E[F]的第一乘积,并根据所述第一交集Q1中所有第二子表L’的第一乘积之和、所述第一交集Q1中的记录数和所述第二子表L’的记录数,确定所述第一命中概率
根据本公开实施例提供的技术方案,通过将所述第一子表与所述第一表的第一交集进一步划分为多个具有局部独立性的第二子表,将计算第一子查询条件在第一子表中的第一命中概率转换成,计算第一子查询条件在第二子表中的命中概率和第一交集中的记录在所述第一子表中的第一出现次数在所述第二子表中的期望值,进一步降低了计算复杂度,提高了方案的计算效率和通用性。
在本公开实施例中,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,可以包括:获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;获取所述第二出现次数在所述第三子表中的期望值;获取所述第二子查询条件在所述第三子表中的命中概率;根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
在本公开实施例中,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,可以包括:针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
根据本公开的实施例,假设第一表T的T1部分与第二表S的S1部分连接得到第一子表L,则第二表S的S1部分是第二交集Q2。与上文类似,可以在所述第二交集Q2中增设一列扇出(fanout)列,所述扇出列中记载第二交集Q2中的记录在所述第一子表L中出现的次数。
此时,由于在所述第二交集Q2中,第二表的属性与f仍然可能具有相关性,因此可以采取与上述从连接表W中获取第一子表L相同的方法,将所述第二交集Q2迭代进行划分为多个第三子表L”,直至最终获得的第三子表L”中,所述第二表的属性与所述第二出现次数之间的相关性小于第三预设阈值。其中,第三预设阈值的设置方法与第一预设阈值相同,第三预设阈值的取值可以与所述第一预设阈值相同,也可以不同。
采用这样的方式,可以将计算转换为,计算其中,F3为第二交集的记录数,F2为第一子表中的记录数,E[F]是第三子表中f的期望值,该期望值可以通过对第三子表的f随机抽样后取平均值得到。至此,通过针对所述第二交集Q2中的每个第二子表L”,获取所述第二子查询条件B’在所述第三子表L”中的命中概率与所述第二出现次数在所述第三子表L”中的期望值E[F]的第二乘积,并根据所述第二交集Q2中所有第三子表L”的第二乘积之和、所述第二交集Q2中的记录数和所述第一子表L的记录数,确定所述第二命中概率
在本公开实施例中,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,可以包括:获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
在本公开实施例中,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,可以包括:获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;获取所述第三出现次数在所述第五子表中的期望值;获取所述第三子查询条件在所述第五子表中的命中概率;根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
在本公开实施例中,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,可以包括:获取所述第四子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;获取所述第四出现次数在所述第六子表中的期望值;获取所述第四子查询条件在所述第六子表中的命中概率;根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
具体地,当所述第二表S是连接表时,所述第一子表L与所述第二表S的第二交集Q2的第三子表L”同样是连接表,例如所述第三子表L”是第三表U和第四表V的连接表,此时可以对所述第三子表L”采用与前述对连接表W同样的操作。首先,使用子表获取模块110对所述第三子表L”进行划分获得具有局部独立性的第四子表,再使用子查询条件获取模块120根据查询条件和第三表的属性获取第三子查询条件,根据查询条件和第四表的属性获取第四子查询条件。命中概率获取模块130基于所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率确定所述查询条件在所述第三子表中的命中概率。其中,所述第三子查询条件在所述第四子表中的第三命中概率的计算方法与前述第一子查询条件在所述第一子表中的第一命中概率的计算方法相同,所述第四子查询条件在所述第四子表中的第四命中概率的计算方法与前述第二子查询条件在所述第一子表中的第二命中概率的计算方法相同,此处不再赘述。
根据本公开实施例提供的技术方案,当被连接的两个表中的任一表为连接表时,通过对所述连接表执行与前述对连接表W相同的操作,对其进行递归分解直至为单表。如图1A所示,当第三交集和/或第四交集为连接表时,可以对该连接表执行与前述对连接表W相同的操作,对其进行递归分解直至为单表,针对最终分解得到的单表,获取与其相关的子查询条件的命中概率,再逐级回溯计算查询条件在连接表W的命中概率。这样,可以使所述查询结果命中系统和方法适用于具有任意连接模式和/或连接类型的连接表查询,且在解耦后的单表上支持任何CardEst算法,甚至一个数据库中不同表可以采用不同的CardEst算法处理,因此可以在进行CardEst估计时可以根据需要设定不同的优化目标,采用不同的CardEst算法,通用性好,扩展性强。
图2示出根据本公开的实施例的查询结果命中概率估计装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
如图2所示,所述查询结果命中概率估计装置200包括:
第一获取模块201,被配置为获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
第二获取模块202,被配置为根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
第三获取模块203,被配置为获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率;
确定模块204,被配置为根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
根据本公开实施例提供的技术方案,通过将第一表和第二表的连接表划分为多个具有局部独立性的第一子表,实现了不同表之间相关性的解耦,可无损地合并表单的CardEst结果以预测连接查询大小,计算快捷方便,部署灵活,通用性好。
在本公开实施例中,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;获取所述第一出现次数在所述第二子表中的期望值;获取所述第一子查询条件在所述第二子表中的命中概率;根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
在本公开实施例中,所述根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率,包括:针对所述第一交集中的每个第二子表,获取所述第一子查询条件在所述第二子表中的命中概率与所述第一出现次数在所述第二子表中的期望值的第一乘积;根据所述第一交集中所有第二子表的第一乘积之和、所述第一交集中的记录数、所述第一子表的记录数,确定所述第一命中概率。
在本公开实施例中,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;获取所述第二出现次数在所述第三子表中的期望值;获取所述第二子查询条件在所述第三子表中的命中概率;根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
在本公开实施例中,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,包括:针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
根据本公开实施例提供的技术方案,通过将所述第一子表与所述第一表的第一交集进一步划分为多个具有局部独立性的第二子表,将计算第一子查询条件在第一子表中的第一命中概率转换成,计算第一子查询条件在第二子表中的命中概率和第一交集中的记录在所述第一子表中的第一出现次数在所述第二子表中的期望值,进一步降低了计算复杂度,提高了方案的计算效率和通用性。
在本公开实施例中,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,包括:获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
在本公开实施例中,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,包括:获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;获取所述第三出现次数在所述第五子表中的期望值;获取所述第三子查询条件在所述第五子表中的命中概率;根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
在本公开实施例中,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,包括:获取所子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;获取所述第四出现次数在所述第六子表中的期望值;获取所述第四子查询条件在所述第六子表中的命中概率;根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
在本公开实施例中,所述获取第一表和第二表的连接表的第一子表,包括:将所述连接表作为所述第一子表,在所述子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值。
根据本公开实施例提供的技术方案,当所述第一表和/或第二表为连接表时,通过对所述连接表执行与前述对连接表W相同的操作,反复迭代直至处理对象为单表,再利用前述通过在表中增设扇出列以利用所述扇出列的值,即对应的记录出现次数在对应的表中的期望值计算所述查询结果命中概率,从而使所述查询结果命中方法可适用于具有任意连接模式和/或连接类型的连接表查询,且在解耦后的单表上支持任何CardEst算法,甚至一个数据库中不同表可以采用不同的CardEst算法处理,因此可以在进行CardEst估计时可以根据需要设定不同的优化目标,采用不同的CardEst算法,通用性好,扩展性强。
本公开还公开了一种电子设备,图3示出根据本公开的实施例的电子设备的结构框图。
如图3所示,所述电子设备300包括存储器301和处理器302,其中,存储器301用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器302执行以实现根据本公开的实施例的方法。
在本公开实施例中,所述查询结果命中概率估计方法包括:
获取第一表和第二表的连接表的第一子表,所述第一子表包含所述第一表和所述第二表的属性,在所述第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率;
根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
根据本公开实施例提供的技术方案,通过将第一表和第二表的连接表划分为多个具有局部独立性的第一子表,实现了不同表之间相关性的解耦,可无损地合并表单的CardEst结果以预测连接查询大小,计算快捷方便,部署灵活,通用性好。
在本公开实施例中,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;获取所述第一出现次数在所述第二子表中的期望值;获取所述第一子查询条件在所述第二子表中的命中概率;根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
在本公开实施例中,所述根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率,包括:针对所述第一交集中的每个第二子表,获取所述第一子查询条件在所述第二子表中的命中概率与所述第一出现次数在所述第二子表中的期望值的第一乘积;根据所述第一交集中所有第二子表的第一乘积之和、所述第一交集中的记录数、所述第一子表的记录数,确定所述第一命中概率。
在本公开实施例中,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;获取所述第二出现次数在所述第三子表中的期望值;获取所述第二子查询条件在所述第三子表中的命中概率;根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
在本公开实施例中,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,包括:针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
根据本公开实施例提供的技术方案,通过将所述第一子表与所述第一表的第一交集进一步划分为多个具有局部独立性的第二子表,将计算第一子查询条件在第一子表中的第一命中概率转换成,计算第一子查询条件在第二子表中的命中概率和第一交集中的记录在所述第一子表中的第一出现次数在所述第二子表中的期望值,进一步降低了计算复杂度,提高了方案的计算效率和通用性。
在本公开实施例中,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,包括:获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
在本公开实施例中,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,包括:获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;获取所述第三出现次数在所述第五子表中的期望值;获取所述第三子查询条件在所述第五子表中的命中概率;根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
在本公开实施例中,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,包括:获取所子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;获取所述第四出现次数在所述第六子表中的期望值;获取所述第四子查询条件在所述第六子表中的命中概率;根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
在本公开实施例中,所述获取第一表和第二表的连接表的第一子表,包括:将所述连接表作为所述第一子表,在所述子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值。
根据本公开实施例提供的技术方案,当所述第一表和/或第二表为连接表时,通过对所述连接表执行与前述对连接表W相同的操作,反复迭代直至处理对象为单表,再利用前述通过在表中增设扇出列以利用所述扇出列的值,即对应的记录出现次数在对应的表中的期望值计算所述查询结果命中概率,从而使所述查询结果命中方法可适用于具有任意连接模式和/或连接类型的连接表查询,且在解耦后的单表上支持任何CardEst算法,甚至一个数据库中不同表可以采用不同的CardEst算法处理,因此可以在进行CardEst估计时可以根据需要设定不同的优化目标,采用不同的CardEst算法,通用性好,扩展性强。
图4示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
如图4所示,计算机系统400包括处理单元401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行上述实施例中的各种处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。处理单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。其中,所述处理单元401可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括计算机指令,该计算机指令被处理器执行时实现上文所述的方法步骤。在这样的实施例中,该计算机程序产品可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。
图5示出适于用来实现根据本公开实施例的方法的分布式数据库系统的结构示意图。
如图5所示,分布式数据库系统501可以包括互联的多个主机,例如包括主机1、主机2、主机3……主机n。分布式数据库系统501中的主机可以用于实现以下一项或多项功能:存储数据表(例如,包括单表和/或通过连接单表生成的连接表等);实现与外部设备的通信;执行指定计算操作。例如,分布式数据库系统501中的主机可以用于实现根据本公开实施例的查询结果命中概率估计系统和方法。具体地,根据本公开实施例的查询结果命中概率估计系统中的各个模块,和/或根据本公开实施例的查询结果命中概率估计方法可以使用分布式数据库系统501中的一个或多个主机实现,例如,可以在基于所述主机创建的虚拟机、容器、云服务器中实现。
分布式数据库系统501与客户端502通信,从客户端502获取查询条件,基于查询条件和自身存储的与查询条件相关的表进行命中概率估计,并向客户端502返回查询条件的命中概率估计结果。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (13)
1.一种查询结果命中概率估计系统,包括:
子表获取模块,被配置为获取第一表和第二表的连接表的多个第一子表,所述第一子表包含所述第一表的属性和所述第二表的属性,在所述多个第一子表的任一第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
子查询条件获取模块,被配置为根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
命中概率获取模块,被配置为获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率,根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率;
其中,所述多个第一子表通过以下方式获取:
将所述连接表作为所述第一子表,在所述第一子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;
将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;
重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值;
所述根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率,包括:对在所述多个第一子表的每一第一子表中获取的第一命中概率和第二命中概率的乘积求和,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
2.根据权利要求1所述的系统,其中,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:
获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;
获取所述第一出现次数在所述第二子表中的期望值;
获取所述第一子查询条件在所述第二子表中的命中概率;
根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
3.根据权利要求2所述的系统,其中,所述根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率,包括:
针对所述第一交集中的每个第二子表,获取所述第一子查询条件在所述第二子表中的命中概率与所述第一出现次数在所述第二子表中的期望值的第一乘积;
根据所述第一交集中所有第二子表的第一乘积之和、所述第一交集中的记录数、所述第一子表的记录数,确定所述第一命中概率。
4.根据权利要求1所述的系统,其中,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:
获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;
获取所述第二出现次数在所述第三子表中的期望值;
获取所述第二子查询条件在所述第三子表中的命中概率;
根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
5.根据权利要求4所述的系统,其中,所述根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率,包括:
针对所述第二交集中的每个第三子表,获取所述第二子查询条件在所述第三子表中的命中概率与所述第二出现次数在所述第三子表中的期望值的第二乘积;
根据所述第二交集中所有第三子表的第二乘积之和、所述第二交集中的记录数、所述第一子表的记录数,确定所述第二命中概率。
6.根据权利要求4所述的系统,其中,所述第三子表是第三表和第四表的连接表,所述获取所述第二子查询条件在所述第三子表中的命中概率,包括:
获取所述第三子表的第四子表,所述第四子表包含所述第三表和所述第四表的属性,在所述第四子表中,所述第三表的属性与所述第四表的属性之间的相关性小于第四预设阈值;
根据查询条件和所述第三表的属性获取第三子查询条件,根据所述查询条件和所述第四表的属性获取第四子查询条件;
获取所述第三子查询条件在所述第四子表中的第三命中概率和所述第四子查询条件在所述第四子表中的第四命中概率;
根据所述第三命中概率和所述第四命中概率,确定所述查询条件在所述第三子表中的命中概率。
7.根据权利要求6所述的系统,其中,所述获取所述第三子查询条件在所述第四子表中的第三命中概率,包括:
获取所述第四子表与所述第三表的第三交集的第五子表,在所述第五子表中,所述第三表的属性与所述第三交集中的记录在所述第四子表中的第三出现次数的相关性小于第五预设阈值;
获取所述第三出现次数在所述第五子表中的期望值;
获取所述第三子查询条件在所述第五子表中的命中概率;
根据所述第三出现次数在所述第五子表中的期望值和所述第三子查询条件在所述第五子表中的命中概率,确定所述第三子查询条件在所述第四子表中的第三命中概率。
8.根据权利要求6所述的系统,其中,所述获取所述第四子查询条件在所述第四子表中的第四命中概率,包括:
获取所子表与所述第四表的第四交集的第六子表,在所述第六子表中,所述第四表的属性与所述第四交集中的记录在所述第四子表中的第四出现次数的相关性小于第六预设阈值;
获取所述第四出现次数在所述第六子表中的期望值;
获取所述第四子查询条件在所述第六子表中的命中概率;
根据所述第四出现次数在所述第六子表中的期望值和所述第四子查询条件在所述第六子表中的命中概率,确定所述第四子查询条件在所述第四子表中的第四命中概率。
9.一种查询结果命中概率估计方法,包括:
获取第一表和第二表的连接表的多个第一子表,所述第一子表包含所述第一表的属性和所述第二表的属性,在所述多个第一子表的任一第一子表中,所述第一表的属性与所述第二表的属性之间的相关性小于第一预设阈值;
根据查询条件和所述第一表的属性获取第一子查询条件,根据所述查询条件和所述第二表的属性获取第二子查询条件;
获取所述第一子查询条件在所述第一子表中的第一命中概率和所述第二子查询条件在所述第一子表中的第二命中概率;
根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率;
其中,所述多个第一子表通过以下方式获取:
将所述连接表作为所述第一子表,在所述第一子表中,获取所述第一表中任一属性与所述第二表中任一属性的相关性值;
将相关性值最高的属性对中的第一表的属性确定为指定属性,根据所述指定属性的属性值划分所述第一子表,使用划分结果更新所述第一子表;
重复所述获取相关性值、确定指定属性、划分第一子表和更新第一子表操作,直到所述第一子表中所述第一表的属性与所述第二表的属性之间的相关性值小于第一预设阈值;
所述根据所述第一命中概率和所述第二命中概率,确定所述查询条件在所述第一表和第二表的连接表中的命中概率,包括:对在所述多个第一子表的每一第一子表中获取的第一命中概率和第二命中概率的乘积求和,确定所述查询条件在所述第一表和第二表的连接表中的命中概率。
10.根据权利要求9所述的方法,其中,所述获取所述第一子查询条件在所述第一子表中的第一命中概率,包括:
获取所述第一子表与所述第一表的第一交集的第二子表,在所述第二子表中,所述第一表的属性与所述第一交集中的记录在所述第一子表中的第一出现次数的相关性小于第二预设阈值;
获取所述第一出现次数在所述第二子表中的期望值;
获取所述第一子查询条件在所述第二子表中的命中概率;
根据所述第一出现次数在所述第二子表中的期望值和所述第一子查询条件在所述第二子表中的命中概率,确定所述第一子查询条件在所述第一子表中的第一命中概率。
11.根据权利要求9所述的方法,其中,所述获取所述第二子查询条件在所述第一子表中的第二命中概率,包括:
获取所述第一子表与所述第二表的第二交集的第三子表,在所述第三子表中,所述第二表的属性与所述第二交集中的记录在所述第一子表中的第二出现次数的相关性小于第三预设阈值;
获取所述第二出现次数在所述第三子表中的期望值;
获取所述第二子查询条件在所述第三子表中的命中概率;
根据所述第二出现次数在所述第三子表中的期望值和所述第二子查询条件在所述第三子表中的命中概率,确定所述第二子查询条件在所述第一子表中的第二命中概率。
12.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求9-11中任一项所述的方法步骤。
13.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求9-11中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210111026.8A CN114138798B (zh) | 2022-01-29 | 2022-01-29 | 查询结果命中概率估计系统、方法、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210111026.8A CN114138798B (zh) | 2022-01-29 | 2022-01-29 | 查询结果命中概率估计系统、方法、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138798A CN114138798A (zh) | 2022-03-04 |
CN114138798B true CN114138798B (zh) | 2022-05-10 |
Family
ID=80381726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210111026.8A Active CN114138798B (zh) | 2022-01-29 | 2022-01-29 | 查询结果命中概率估计系统、方法、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138798B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013424A (zh) * | 2005-12-27 | 2007-08-08 | 国际商业机器公司 | 执行关系数据库搜索的系统和方法 |
CN109815241A (zh) * | 2019-01-31 | 2019-05-28 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5224851B2 (ja) * | 2008-02-27 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 検索エンジン、検索システム、検索方法およびプログラム |
GB2470007A (en) * | 2009-05-05 | 2010-11-10 | Aurix Ltd | Analysing non-deterministic results of a search query |
US10496643B2 (en) * | 2016-02-08 | 2019-12-03 | Microsoft Technology Licensing, Llc | Controlling approximations of queries |
CN105955988B (zh) * | 2016-04-19 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 信息搜索方法和装置 |
CN110399395B (zh) * | 2018-04-18 | 2022-04-01 | 福建天泉教育科技有限公司 | 基于预计算的加速查询方法、存储介质 |
CN113515541A (zh) * | 2020-04-09 | 2021-10-19 | 奇安信安全技术(珠海)有限公司 | 数据库的数据查询方法、装置和系统 |
CN111949898A (zh) * | 2020-08-28 | 2020-11-17 | 平安国际智慧城市科技股份有限公司 | 搜索结果排序方法、装置、设备及计算机可读存储介质 |
CN113918605A (zh) * | 2021-10-13 | 2022-01-11 | 咪咕文化科技有限公司 | 数据查询方法、装置、设备以及计算机存储介质 |
-
2022
- 2022-01-29 CN CN202210111026.8A patent/CN114138798B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013424A (zh) * | 2005-12-27 | 2007-08-08 | 国际商业机器公司 | 执行关系数据库搜索的系统和方法 |
CN109815241A (zh) * | 2019-01-31 | 2019-05-28 | 上海达梦数据库有限公司 | 数据查询方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114138798A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814091B2 (en) | Multi-tiered query processing techniques for minus and intersect operators | |
CN108932313B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US8161070B2 (en) | Efficient delta handling in star and snowflake schemes | |
US9063958B2 (en) | Advance enhancement of secondary persistency for extension field search | |
US8090700B2 (en) | Method for updating databases | |
US20070185912A1 (en) | Off-loading I/O and computationally intensive operations to secondary systems | |
US20060026133A1 (en) | Determining query cost based on subquery filtering factor | |
US7478083B2 (en) | Method and system for estimating cardinality in a database system | |
US8572067B2 (en) | Method to estimate the number of distinct value combinations for a set of attributes in a database system | |
EP0875838A2 (en) | Cardinality-based join ordering | |
GB2507094A (en) | Selecting and loading a subset of data from a database backup | |
US11269880B2 (en) | Retroreflective clustered join graph generation for relational database queries | |
CN107408126B (zh) | 用于集群中的基于联接的查询处理的工作负载感知的数据放置 | |
WO2015074466A1 (zh) | 一种数据查询方法及装置 | |
US10664477B2 (en) | Cardinality estimation in databases | |
Olma et al. | Taster: Self-tuning, elastic and online approximate query processing | |
US7542975B2 (en) | Computing frequent value statistics in a partitioned relational database | |
CN111984688B (zh) | 业务知识关联关系的确定方法及装置 | |
US8150865B2 (en) | Techniques for coalescing subqueries | |
US11875386B2 (en) | Estimating as-a-service query prices within optimizer explained plans | |
CN114138798B (zh) | 查询结果命中概率估计系统、方法、电子设备及介质 | |
CN110674177B (zh) | 数据查询方法、装置、电子设备和存储介质 | |
US11880370B2 (en) | Retroreflective join graph generation for relational database queries | |
CN115563148A (zh) | 数据库查询方法和装置 | |
US8312005B2 (en) | Semantically aware relational database management system and related methods |
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 |