CN116830097A - 数据库区域地图的自动线性聚类推荐 - Google Patents
数据库区域地图的自动线性聚类推荐 Download PDFInfo
- Publication number
- CN116830097A CN116830097A CN202180092687.4A CN202180092687A CN116830097A CN 116830097 A CN116830097 A CN 116830097A CN 202180092687 A CN202180092687 A CN 202180092687A CN 116830097 A CN116830097 A CN 116830097A
- Authority
- CN
- China
- Prior art keywords
- column
- cluster
- columns
- computer
- implemented method
- 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
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000005070 sampling Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 6
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000758 substrate 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/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了自动且高效地创建用于数据库查询处理的区域地图的技术。这些技术包括创建样本数据集来表示原始数据集、构建查询工作负载建模器来表征查询的完整工作负载、构建聚类质量评估器来评估在列上具有特定聚类的数据集上的查询性能、通过评估工作负载对与不同聚类对应的样本数据集的不同应用来找到聚类解,并确定聚类解的哪些列可以从区域地图中受益。
Description
技术领域
本文描述的技术和方法涉及数据库区域地图(zone maps)领域,特别是数据库区域地图的自动且高效的生成。
背景技术
本节中描述的方法是可以采用的方法,但不一定是以前设想或采用的方法。因此,除非另有说明,否则不应当假设本节中描述的任何方法仅仅由于它们包含在本节中就符合现有技术的条件。
区域地图是一种数据访问结构,它通过提前修剪不相关的数据块来降低查询的数据访问成本。但是,当数据库表中的数据以与工作负载查询和数据特性一致的方式聚类并且区域地图是为与工作负载最相关的列构造时,区域地图是最有效的。自动分析工作负载并推荐区域地图进行构造来达到最佳性能将是有帮助的。
附图说明
在某些实施例的附图中,相同的附图标记贯穿各图指代对应的部分:
图1图示了根据本文公开的实施例的计算机系统的示例部件。
图2以流程图图示了根据本文公开的实施例的为数据库表推荐区域地图的处理。
图3是图示可以在其上实现方法的实施例的计算机系统的框图。
具体实施方式
在下面的描述中,为了解释的目的,阐述了许多具体细节以便提供对本方法的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践本方法。在其它情况下,以框图形式示出结构和设备以避免不必要地模糊本方法。
总体概述
公开了自动且高效地创建用于数据库查询处理的区域地图的技术。这些技术包括创建样本数据集来表示原始数据集、构建查询工作负载建模器来表征查询的完整工作负载、构建聚类质量评估器来评估在列上具有特定聚类的数据集上的查询性能、通过评估工作负载对与不同聚类对应的样本数据集的不同应用来找到聚类解,并确定聚类解的哪些列可以从区域地图中受益。
数据库可以包括多个表,并且可以从那些表之一或者通过连接那些表中的一些表来获得原始数据集。识别聚类解和构建区域地图的列的强力方法是在不同的候选列集上对原始数据集进行排序,并对结果排序数据运行完整的工作负载以进行评估。但是,在实践中,对于大型数据集,对数据进行单一排序可能需要数小时。因此,本申请中公开的技术引入了聚类质量评估器,其采用从原始数据集创建的样本数据集。评估器可以对候选列集上的样本数据集进行排序,并将结果产生的列聚类应用于原始数据集,从而将样本数据集上的性能外推到原始数据集上的性能。此外,即使在样本数据集上运行包含大量查询的完整工作负载仍然可能非常昂贵,特别是当有大量候选聚类需要搜索时。为了解决这个问题,所公开的技术引入了查询工作负载建模器,其为查询构建统计模型。通过用样本数据集替换原始数据集,并用查询工作负载建模器替换完整工作负载,可以花费少得多的时间来比较不同的聚类并确定要创建的适当区域地图。
区域地图
区域地图允许数据库基于聚合信息修剪包含与查询谓词(例如,SQL语句的where子句中的“等于”运算符)无关的行的数据块,而无需实际访问这些块。为了构造区域地图,整个表被划分为一定大小的行块组,称为区域。然后,对于每个关注的列,每个区域的最小值和最大值存储在数据结构中。对于查询的等式或范围谓词,如果区域与区域的最小到最大范围没有重叠,则可以忽略该区域。包含每个区域的最小值和最大值的数据结构被称为区域地图。
区域地图最适合相等和范围谓词查询,以及当区域中的值集中在列范围的一小部分子集中时(诸如当对列进行排序时)。例如,对于表示美国各州的称为“State”的数据库列,当对该列进行排序时,第一个区域的最小值和最大值可以分别是“AK”和“AZ”,后面是分别针对第二个区域的“CA”和“DE”,依此类推。对于带有等式谓词的查询:State='CA',当该列上存在区域地图时,数据库可以使用该区域地图来确定数据库只需要访问第二个区域即可访问所有相关行,并且所有其它数据块可以在不访问它们的情况下被修剪。
但是,区域地图的正常工作并不需要对数据进行完整的排序。只要区域中的值在特定范围内,就不必在区域内对它们进行排序。为了进行这种区分,术语“聚类”通常用在区域地图的上下文中,以识别区域内的所有值都在某个最小值和最大值内的列。目前,大多数数据库都是通过对列进行排序来执行聚类的,因此被排序/排序(sorted/sorting)和被聚类/聚类(clustered/clustering)之间没有实际区别。在本申请中,这两个术语可互换使用。
线性聚类
大多数数据库表都有多个对查询重要的列,因此对单个列进行排序通常是不够的。解决此问题的一个选项是将表线性聚集到多个列上。给定表T的A、B和C列上的线性聚类Linear(T.A,T.B,T.C),数据库将如下进行:首先在A列上对整个表进行排序,然后在B列上对与A列的值有关联的键进行排序,然后在C列上对A列和B列上的关联进行排序。在这种情况下,系统可以期望在A列上的查询具有最好性能,然后是B列,然后是C列。例如,对于包含“州(State)”和“邮政编码(Zip Code)”两列,包含以下三行:(TX,78712)、(CA,94404)、(CA,94401)的数据库表,线性排序顺序将是:(CA,94401)、(CA,94404)、(TX,78712)。这是因为行首先按州排序,并且两个关联行(其中State='CA')按邮政编码排序。
一般方法
在一些实施例中,对于数据库工作负载,即填充有数据的数据库实例以及对数据的一组代表性查询,系统识别数据库表的哪些列要在其上聚类以及给定已识别的聚类,哪些列将从区域地图中受益。
图1图示了根据本文公开的实施例的计算机系统的示例部件。在一些实施例中,数据库管理系统100包括查询工作负载建模器指令102、聚类质量评估器指令104、解搜索指令106以及区域地图推荐指令108。在其它实施例中,系统100可以具有更多或更少的部件。
在一些实施例中,查询工作负载建模器指令102启用列修剪和工作负载模型创建。列修剪包括分析工作负载中的查询,以基于查询中如何使用表列来计算表列的权重,并基于权重识别用于聚类的候选列。工作负载模型创建包括为工作负载查询创建概率模型。该模型包括关于每列的重要性和附加查询谓词特性的信息,诸如选择性,如下文进一步讨论的。
在一些实施例中,聚类质量评估器指令104使得能够从原始数据集中获取包括候选列的行的样本。聚类质量评估器指令104还使得能够构建聚类质量评估器以在查询性能方面评估聚类的质量、对已使用特定聚类进行聚类的样本行集合执行聚类质量评估器以获得特定聚类的质量分数,并外推原始数据集中完整行集合的质量分数。
在一些实施例中,解搜索指令106使得能够使用贪婪算法来搜索可能聚类的空间,以找到最佳聚类作为聚类解。搜索包括对已使用空间中的每个聚类进行聚类的行样本集执行聚类质量评估器。
在一些实施例中,区域地图推荐指令108使得能够从候选列中识别为其创建区域地图的列。在给定聚类的情况下,这些列在没有区域地图的情况下查询性能会显著恶化。
列修剪
在一些实施例中,在决定对列进行聚类是否有用时要考虑的一个因素是指示列在查询中被引用的频率的列重要性wc。只有在查询谓词中占显著部分的列才应包含在聚类解中。因此,在工作负载中不占至少一定百分比的查询的列将被移除,以供进一步考虑。例如,该百分比可以是10%。
在一些实施例中,对于还没有被修剪掉的列,计算权重,这可以取决于所使用的特定数据库模式。在决定列上的聚类是否有用时要考虑的另一个因素是查询选择性。最好在查询具有高度选择性的列上进行聚类,即当查询谓词引用列中相对较少数量的值时。列的权重可以基于查询选择性。例如,列的权重可以指示该列是查询中最具选择性的列的可能性有多大。一些数据库在生成查询计划时产生此类信息。否则,可以根据数据库行的随机样本按照列最具选择性的查询在工作负载中的百分比来计算权重。在其它实施例中,列的权重可以仅基于列重要性。例如,列的权重可以简单地是工作负载中对该列具有谓词的查询的百分比。权重可以归一化为总和为1并视为概率分布。
工作负载模型创建
在一些实施例中,在决定列上的聚类是否有用时要考虑的又一个因素是列上的查询中的OR项的数量。当列上的查询是需要随机访问数据库的大量等式谓词的并集(union)时,即使数据已排序,区域地图通常也没有什么用处。
在一些实施例中,针对列计算关于查询谓词的异质性值,其被定义为在该列上的单个查询谓词中观察到的不同值(NDV)的数量的频率分布。例如,查询谓词“Where state='CA'or state='TX'or state='WA'”的NDV为3。异质性值是查询的特性,而不是数据的特性。通常这个值可以从查询文本或查询计划中提取。形式上,异质性hc表示为列c的一组对,其中/>是在该列的谓词i中观察到的NDV的不同值,/>是观察谓词值的归一化频率。
在决定对列进行聚类是否有用时要考虑的另一个因素是该列与其它列的关系。该关系对聚类的质量有影响。例如,邮政编码(Zip Code)和州(State)这两列在统计上不是独立的。当数据在邮政编码上聚类时,数据会自动在州上聚类。因此,在一列(邮政编码)上聚类可以在两列(邮政编码和州)上生成有用的区域地图,而无需专门在州上进行聚类。又例如,“州”和“名称”两列可能在统计上是独立的。因此,仅在这些列之一上进行聚类是不够的。此外,由于名称可能接近唯一,因此(Name,State)上的线性聚类本质上将使State不聚类。相比之下,(State,Name)上的聚类可能提供更好的性能。使用聚类来构造区域地图(包括每个区域的最小值和最大值)本质上捕获了列之间的关系。
在一些实施例中,工作负载因此通过对列查询的效果被建模为三元组集合:Q=(mc,wc,hc),c=1...nc,其中nc是关注的列数,mc是第c列的名称,wc是其权重,hc是该列上谓词的聚合异质性值。三元组集合的工作负载模型也可以被视为如何基于数据集生成查询的简化概率模型。在每一步中,都会选择数据库列,其中列c被选择的概率为wc。接下来,将使用一定数量的谓词为选定的列创建查询。谓词的数量服从hc分布,使得生成谓词值的概率为/>列中的所有不同值都同样有可能被选择作为谓词值。
聚类质量评估器
在一些实施例中,然后分析从原始数据集获得的候选列的具体化行样本以计算最佳聚类,并且还识别区域地图列。可以使用采样因子(诸如0.1%或0.2%)随机选择样本数据集的行。可以通过实验选择采样因子,使得在样本数据集的区域中观察到的最小值和最大值与实际的最小值和最大值相当接近(例如,在不到10%的试验中差异超过10%)。
在一些实施例中,聚类解的质量被估计为对于从工作负载中随机选择的查询所访问的区域的预期(平均)数量。估计是针对原始数据集执行的。然后可以将结果扩展为通过一些简化的假设来估计样本数据集的聚类质量。
给定原始数据集的聚类质量
在一些实施例中,对于具有其上已经对行进行聚类并且已经构造区域地图的至少一组列的数据行的原始数据集,估计问题可以被形式化如下。令AQ是随机变量,其表示执行工作负载Q时对表的访问次数。目标是计算E[AQ],即,给定一个从Q随机生成的查询的预期访问次数。如上所述,工作负载Q被建模为列上的概率分布,其中列上的查询概率与其权重wc成比例。因此,E[AQ]可以被计算为:
E[AQ]=∑wcE[Ac] (1)
c∈Q
这里E[Ac]是对c列的查询的预期区域访问次数。接下来,令Z为区域集合,假设所有候选列都存在区域地图。对于区域zj∈Z,令ljc为指示器函数,表示c列(来自工作负载)上的随机查询将访问区域zj的事件。目标是计算E因此,
E[Ac]=∑E[ljc] (2)
Zj∈Z
然后可以计算对单个区域的预期访问次数,并且可以对所有区域的此类预期次数进行求和,以计算访问的区域的预期次数。由于查询对单个区域的预期访问次数始终小于1,因此访问的区域的该预期次数实质上是该区域被访问的概率。
对于单个区域zj∈Z,其中c列的最小值和最大值已知,区域的最小值和最大值可以分别被写为/>和/>接下来定义函数NDV distance Vc(x,y),它给定c列中的两个不同值x和y,返回按排序顺序位于x和y之间的不同值的数量。例如,对于包含所有50个州的列s,Vc('CA','FL')=5,包括以下州集合:'CA'、'CO'、'CT'、'DE'和'FL'。这个函数仅返回两个给定值之间的不同值的数量,并且不受每个值出现的频率的影响。然后E[ljc]=P[ljc=1]计算如下:
上式中,NDVc表示c列的实际NDV。此外,右手侧的总和是按其相应概率进行加权的所有可能的谓词值/>的总和。具体而言,查询将访问区域z j的概率是1减去查询中没有任何/>键出现在该区域中的概率。随机选择的键未出现在区域中的概率由下式给出: 假设键是随机选择的,并且所有键被选择的可能性相同,那么该值被提高到/>的幂以给出所有随机选择的/>键都没有出现在该区域中的概率。
等式(3)表示针对随机选择的列上的一个随机生成的查询对单个区域的预期访问次数。要计算针对随机查询访问的区域的预期总数,可以使用等式(3)计算每列对每个区域的预期访问次数。然后使用等式(2)对所有区域的此类预期次数进行求和,以计算E[Ac],即对于每列访问的区域的预期总数。然后,可以使用等式(1)计算所有列的加权总和,以计算从工作负载中随机选择的列的预期访问区域数。
给定样本数据集的聚类质量扩展
在一些实施例中,为了基于原始数据集的样本数据集估计E[AQ],每个区域的大小可以基于采样百分比缩小。对于SZ行的原始表区域大小和采样百分比p,我们将样本上的区域大小设置为以这种方式缩小区域大小实际上为我们提供了每个区域的端点和/>的无偏估计。
在一些实施例中,通过简化的假设,等式(3)中的可以根据样本数据集进行估计。这些假设包括只看到样本数据集中的k*NDVc个不同键,其中k是跨区域恒定的分数。然后,基于样本数据集的此项估计是整个数据集的此项的无偏估计,因为k项被抵消。这可以如下所示:
左手侧项是在样本中观察到的项(尽管k未知),而右手侧项是基本事实。上述假设意味着样本数据集中缺失的键按照区域样本NDV的比例跨整个区域分布。通过这些假设,等式(3)、(2)和(1)可以用于样本数据集来估计聚类的质量。
在一些实施例中,做出的另一个假设是列谓词的异质性可以用谓词中与运算符组合的项的平均数量来表示,而不是分布, 当谓词异质性集中在单个值上时,这是合理的假设。相关的假设是,某一列上的所有查询都恰有一个谓词。等式(3)、(2)和(1)可以被合并成一个等式:
E[AQ]=∑c∈QwcE[Ac] (4)
E[Ac]可以近似为:
等式(4)可以被写为:
该等式与等式(3)之间的关键变化在于,不是对查询谓词中NDV的所有可能值求和,而是仅使用均值
在一些实施例中,可以通过以下两个步骤的高效执行来促进等式(6)的快速评估。第一步骤是找到每列的每个(缩小)区域的最小值和最大值,并且/>这可以使用SQL row_number()函数高效地实现。例如,要基于聚类列$cluster_cols找到列$col的所有区域的最小值和最大值,可以执行以下SQL查询:
with SAMPLE_TABLE_rn as(
Select row_number()over(order by$cluster_cols)rn,SAMPLE_TABLE.*from
SAMPLE_TABLE
)
Select min($col),max($col)from SAMPLE_TABLE_rngroup bytrunc((rn-
1)/$zonemap_size);
数据库的查询优化器确保该查询快速且高效地运行。第二步骤是在样本数据集中找到任意列的两个给定值(包含)之间的不同值的数量这可以通过创建具有按排序顺序排列的所有列的不同值的临时表或通过在样本数据集上创建临时索引来完成。由于这个步骤是在样本数据集上执行的,并且仅需要一次作为预处理(之后可以将表重新用于对此函数的所有调用),因此这个步骤相对便宜。
解搜索算法
在一些实施例中,可以使用贪婪方法找到要从中构建区域地图的聚类解。在每个时间步长,通过使用附加列扩展前一个时间步长的线性聚类,生成具有最低预期区域访问次数的线性聚类。贪婪方法可以用伪代码描述如下:
输入:S:具有列C=c1,...,NC的样本
τ:允许的最大聚类列数(默认=4)
Δ:列包含所需的最小百分比改进(默认=5%)
输出:一对soln=(soln._1,solu._2),其中soln._1是聚类列的列表,并且soln._2是聚类质量。
初始化:
1设置候选解队列
2设置baseline_soln←Expected_Num_Accesses(S,rowid)
3将对添加到U
循环:
4 do
5设置cur_soln←u∈U,其中u._2为最小值
6设置cur_quality←cur_soln._2
7设置cur_clus_cols←cur_soln._1
8设置new_sol_found←False
9 for c∈C-cur_clus_cols do
10设置new_cand_cols←cur_clus_cols.append(c)
11设置new_clus_quality←Expected_Num_Accesses(S,new_cand_cols)
12设置impr←(cur_quality-new_clus_quality)/cur_quality
13 if impr>Δthen
14将(new_cand_cols,new_clus_quality)添加到U
15设置new_soln_found←True
16while len(curr_soln.cols)<τand new_soln_found
结果:
17设置soln←u∈U,其中u._2为最小值
18返回soln
在一些实施例中,函数Expected_Num_Accesses(Sample,Candidate Cols)将样本和候选列集合(以表示伪列的“rowid”开始)作为输入来聚类,并返回E[AQ],即通过在使用等式(6)应用基于候选列集合的线性聚类的样本数据集上运行工作负载而访问的预期区域次数。当新列c被添加到候选聚类解时,至少和可能会相应改变。除了输入参数之外,该函数还具有与其可用工作负载相关的以下信息:
1.附加于每一列的权重wc。
2.该列上谓词的均值NDV
在一些实施例中,上述贪婪方法的执行产生聚类解,该聚类解涉及候选列集合和给定聚类解的随机选择的查询所访问的预期数量的区域地图,假设对于所有候选列都存在区域地图。
区域地图列标识
在一些实施例中,候选列的列表被修剪,其中对E[AQ]没有显著影响的列被移除。当列c上存在区域地图时,针对c上的查询的区域访问的预期数量E[Ac]由等式(5)给出。当列上不存在区域地图时,针对该列的查询将访问所有区域,因此E[Ac]=NZ,即表中区域的数量,其可以用作用于确定列的区域地图对E[AQ]的影响的基线。
在一些实施例中,函数Expected_Num_Accesses返回向量而不是E[AQ],其中该向量的第c个元素是E[Ac]。/>是等式(4)的输入。然后不创建区域地图对c列的影响可以如下计算:将/>中的E[Ac]替换为NZ,并使用等式(4)重新计算E[AQ]。该重新计算的值被表示为/>然后区域地图对c列的影响可以计算为:
Impactc因此是当c上未创建区域地图时,区域地图访问总量增加的百分比。选择区域地图的影响高于特定阈值的最终列列表,并且仅为该最终列列表创建区域地图。在一些实施例中,影响阈值被设置为5%。
示例处理
图2以流程图图示了根据本文公开的实施例的为数据库表推荐区域地图的处理。
在框202处,系统为包括对一组表的一组查询的数据库工作负载构建工作负载模型。该组表包括行的一个或多个区域。工作负载模型包括基于该组查询针对该组表的每一列的一个或多个特征值。
在一些实施例中,包括重要性值的列的一个或多个特征值指示该组查询引用该列的频率或者该组查询对该列的选择性如何。在其它实施例中,包括异质性值的列的一个或多个特征值指示该组查询在每个查询的基础上在该列上具有多少个谓词值。
在框204处,系统从该组表构造样本数据集。在一些实施例中,构造包括利用采样因子在该组表中对行进行采样。
在框206处,系统基于工作负载模型来确定列聚类解,该列聚类解包括该组表的列的列列表以及指示对实现该列聚类解的样本数据集的该组查询的执行性能的对应分数。在一些实施例中,列聚类解是线性列聚类。
在一些实施例中,系统通过对每列的重要性值应用阈值来从该组表的列中选择一组列,并且仅从该组列确定列聚类解。
在一些实施例中,确定列聚类解包括通过在每次迭代中识别一个或多个要聚类的列来贪婪地构建列聚类解。
在一些实施例中,确定列聚类解包括在每次迭代中基于工作负载模型计算与将每个候选列添加到当前列聚类以形成增强列聚类对应的分数,该分数与对实现增强列聚类的样本数据集的访问次数相关。
在一些实施例中,在进一步确定列聚类解时,系统识别与所有增强列聚类中的最高分数对应的特定增强列聚类,并计算与当前列聚类对应的分数与最高分数之间的差值。当差值大于阈值时,系统将特定增强列聚类识别为列聚类解;当差值不大于阈值时,系统开始另一次迭代。
在一些实施例中,确定列聚类解包括基于区域地图或列列表中的每一列的不同值的数量来计算对样本数据集的访问次数。
在框208处,系统使用列聚类解对该组表进行聚类。
在框210处,系统为该组表的列列表中的至少一列创建区域地图。
在一些实施例中,系统还计算列列表中的每一列的影响值,该影响值指示在不存在该列的区域地图的情况下对样本数据集的该组查询的执行性能的降低,并且为至少一列创建区域地图,该区域地图排除影响值低于阈值的列。
在一些实施例中,计算列的影响值包括计算基于在没有该列的区域地图的情况下的工作负载模型对实现列聚类解的样本数据集的第一访问次数与具有该列的区域地图的情况下对样本数据集的第二访问次数之间的差值。
硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备(诸如被持久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
例如,图3是图示可以在其上实现本方法的实施例的计算机系统300的框图。计算机系统300包括总线302或用于传送信息的其它通信机制,以及与总线302耦合以处理信息的硬件处理器304。硬件处理器304可以是例如通用微处理器。
计算机系统300还包括耦合到总线302的主存储器306,诸如随机存取存储器(RAM)或其它动态存储设备,用于存储将由处理器304执行的信息和指令。主存储器306还可以用于存储在执行由处理器304执行的指令期间的临时变量或其它中间信息。当存储在处理器304可访问的非暂态存储介质中时,这些指令使计算机系统300成为被定制以执行指令中指定的操作的专用机器。
计算机系统300还包括耦合到总线302的只读存储器(ROM)308或其它静态存储设备,用于存储用于处理器304的静态信息和指令。提供了存储设备310(诸如磁盘或光盘)并将其耦合到总线302,用于存储信息和指令。
计算机系统300可以经由总线302耦合到显示器312(诸如阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备314耦合到总线302,用于将信息和命令选择传送到处理器304。另一种类型的用户输入设备是光标控件316(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器304并用于控制显示器312上的光标移动。这种输入设备通常在两个轴上具有两个自由度,第一轴(例如,x)和第二轴(例如,y),这促进设备指定平面中的位置。
计算机系统300可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统300成为或将计算机系统300编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器304执行包含在主存储器306中的一个或多个指令的一个或多个序列,计算机系统300执行所述的技术。这些指令可以从另一个存储介质(诸如存储设备310)读入到主存储器306中。包含在主存储器306中的指令序列的执行使得处理器304执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。
如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备310。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线302的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
各种形式的介质可以参与将一个或多个指令的一个或多个序列传送到处理器304以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统300本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线302上。总线302将数据传送到主存储器306,处理器304从主存储器306检索并执行指令。由主存储器306接收的指令可以可选地在由处理器304执行之前或之后存储在存储设备310上。
计算机系统300还包括耦合到总线302的通信接口318。通信接口318提供耦合到网络链路320的双向数据通信,其中网络链路320连接到本地网络322。例如,通信接口318可以是集成服务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口318可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口318都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路320通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路320可以提供通过本地网络322到主机计算机324或到由互联网服务提供商(ISP)326操作的数据设备的连接。ISP 326进而通过全球分组数据通信网络(现在通常称为“互联网”328)提供数据通信服务。本地网络322和互联网328都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号(其将数字数据携带到计算机系统300和从计算机系统300携带数字数据)是传输介质的示例形式。
计算机系统300可以通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收数据,包括程序代码。在互联网示例中,服务器330可以通过互联网328、ISP 326、本地网络322和通信接口318发送对应用程序的所请求代码。
接收到的代码可以在被接收到时由处理器304执行,和/或存储在存储设备310或其它非易失性存储器中以供稍后执行。
在前面的说明书中,已经参考许多具体细节描述了本方法的实施例,这些具体细节可以根据实施方式的不同而变化。因此,说明书和附图应被视为说明性而非限制性的。本方法的范围以及申请人想要作为本方法的范围的唯一且排他的指示符是以发布这种权利要求的具体形式从本申请发布的权利要求集合的字面和等效范围,包括任何后续更正。
云计算概述
本文描述的技术使用一种或多种处理解决方案来实现,其示例包括分布式系统、聚类计算系统和云计算系统。在实施例中,数据库管理系统100是云计算系统的一部分。云计算系统实现以下一项或多项:云存储、云处理、云通信以及任何其它类型的云计算服务。此外,云计算系统可以在按需付费模型、固定订阅模型等下操作。在该实施例中,归因于数据库管理系统100或本描述内的其它实体的功能的任何部分(或全部)可经由在云计算系统处暴露的接口来控制。
在前面的说明书中,已经参考许多具体细节描述了本方法的实施例,这些具体细节可以根据实施方式的不同而变化。因此,说明书和附图应被视为说明性而非限制性的。本方法的范围以及申请人想要作为本方法的范围的唯一且排他的指示符是以发布这种权利要求的具体形式从本申请发布的权利要求集合的字面和等效范围,包括任何后续更正。
Claims (12)
1.一种为数据库表推荐区域地图的计算机实现的方法,包括:
为包括对一组表的一组查询的数据库工作负载构建工作负载模型,所述工作负载模型包括基于所述一组查询的所述一组表的每一列的一个或多个特征值,
所述一组表包括行的一个或多个区域;
从所述一组表构造样本数据集;
基于工作负载模型确定列聚类解,所述列聚类解包括所述一组表的列的列列表以及指示对实现所述列聚类解的样本数据集的所述一组查询的执行性能的对应分数;
使用所述列聚类解对所述一组表进行聚类;
为所述一组表的列列表中的至少一列创建区域地图。
2.如权利要求1所述的计算机实现的方法,列的所述一个或多个特征值包括重要性值,所述重要性值指示所述一组查询引用所述列的频率或者所述一组查询对所述列的选择性如何。
3.如权利要求2所述的计算机实现的方法,还包括
通过对所述一组表的每一列的重要性值应用阈值,从所述一组表的列中选择一组列,
所述确定仅从所述一组列执行。
4.如权利要求1所述的计算机实现的方法,列的所述一个或多个特征值包括异质性值,所述异质性值指示所述一组查询在每个查询的基础上在所述列上具有多少个谓词值。
5.如权利要求1所述的计算机实现的方法,所述构造包括利用采样因子对所述一组表中的行进行采样。
6.如权利要求1所述的计算机实现的方法,所述列聚类解是线性列聚类。
7.如权利要求1所述的计算机实现的方法,所述确定包括通过在每次迭代中识别一个或多个要聚类的列来贪婪地构建所述列聚类解。
8.如权利要求1所述的计算机实现的方法,所述确定包括在每次迭代中基于工作负载模型计算与将每个候选列添加到当前列聚类以形成增强列聚类对应的分数,所述分数与对实现增强列聚类的样本数据集的访问次数相关。
9.如权利要求8所述的计算机实现的方法,所述确定包括:
识别与所有增强列聚类中的最高分数对应的特定增强列聚类;
计算与当前列聚类对应的分数与最高分数之间的差值;
当所述差值大于阈值时,将所述特定增强列聚类识别为所述列聚类解;以及
当所述差值不大于所述阈值时,开始另一次迭代。
10.如权利要求1所述的计算机实现的方法,所述确定包括基于区域地图或所述列列表中的每一列的不同值的数量来计算对样本数据集的访问次数。
11.如权利要求1所述的计算机实现的方法,还包括
计算所述列列表中的每一列的影响值,所述影响值指示在不存在该列的区域地图的情况下对所述样本数据集的所述一组查询的执行性能的降低,
所述至少一列排除影响值低于阈值的列。
12.如权利要求11所述的计算机实现的方法,计算列的影响值包括计算基于没有该列的区域地图的工作负载模型对实现所述列聚类解的样本数据集的第一访问次数与具有该列的区域地图的情况下对样本数据集的第二访问次数之间的差值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/138,830 | 2020-12-30 | ||
US17/138,830 US11868346B2 (en) | 2020-12-30 | 2020-12-30 | Automated linear clustering recommendation for database zone maps |
PCT/US2021/065667 WO2022147237A1 (en) | 2020-12-30 | 2021-12-30 | Automated linear clustering recommendation for database zone maps |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116830097A true CN116830097A (zh) | 2023-09-29 |
Family
ID=80122874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180092687.4A Pending CN116830097A (zh) | 2020-12-30 | 2021-12-30 | 数据库区域地图的自动线性聚类推荐 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11868346B2 (zh) |
EP (1) | EP4272087B1 (zh) |
CN (1) | CN116830097A (zh) |
WO (1) | WO2022147237A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11868346B2 (en) | 2020-12-30 | 2024-01-09 | Oracle International Corporation | Automated linear clustering recommendation for database zone maps |
US11907263B1 (en) | 2022-10-11 | 2024-02-20 | Oracle International Corporation | Automated interleaved clustering recommendation for database zone maps |
US11886435B1 (en) * | 2023-01-06 | 2024-01-30 | Snark AI, Inc. | Systems and methods for executing queries on tensor datasets |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5899986A (en) | 1997-02-10 | 1999-05-04 | Oracle Corporation | Methods for collecting query workload based statistics on column groups identified by RDBMS optimizer |
US6223171B1 (en) | 1998-08-25 | 2001-04-24 | Microsoft Corporation | What-if index analysis utility for database systems |
US7213012B2 (en) | 2003-05-09 | 2007-05-01 | Oracle International Corporation | Optimizer dynamic sampling |
US7483873B2 (en) * | 2005-01-18 | 2009-01-27 | International Business Machines Corporation | Method, system and article of manufacture for improving execution efficiency of a database workload |
US9367601B2 (en) * | 2012-03-26 | 2016-06-14 | Duke University | Cost-based optimization of configuration parameters and cluster sizing for hadoop |
US8996544B2 (en) | 2012-09-28 | 2015-03-31 | Oracle International Corporation | Pruning disk blocks of a clustered table in a relational database management system |
US9430550B2 (en) | 2012-09-28 | 2016-08-30 | Oracle International Corporation | Clustering a table in a relational database management system |
US10817540B2 (en) * | 2016-09-02 | 2020-10-27 | Snowflake Inc. | Incremental clustering maintenance of a table |
CN112437916B (zh) | 2018-07-17 | 2024-08-06 | 雪花公司 | 数据库表的增量群集 |
US11288271B2 (en) * | 2020-05-28 | 2022-03-29 | Microsoft Technology Licensing, Llc | Data lake workload optimization through explaining and optimizing index recommendations |
US11868346B2 (en) | 2020-12-30 | 2024-01-09 | Oracle International Corporation | Automated linear clustering recommendation for database zone maps |
-
2020
- 2020-12-30 US US17/138,830 patent/US11868346B2/en active Active
-
2021
- 2021-12-30 WO PCT/US2021/065667 patent/WO2022147237A1/en active Application Filing
- 2021-12-30 EP EP21851765.4A patent/EP4272087B1/en active Active
- 2021-12-30 CN CN202180092687.4A patent/CN116830097A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4272087B1 (en) | 2024-10-23 |
EP4272087A1 (en) | 2023-11-08 |
US20220207032A1 (en) | 2022-06-30 |
US11868346B2 (en) | 2024-01-09 |
WO2022147237A1 (en) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7343568B2 (ja) | 機械学習のためのハイパーパラメータの識別および適用 | |
CN116830097A (zh) | 数据库区域地图的自动线性聚类推荐 | |
US8103658B2 (en) | Index backbone join | |
US9390142B2 (en) | Guided predictive analysis with the use of templates | |
US9811527B1 (en) | Methods and apparatus for database migration | |
CN105045875B (zh) | 个性化信息检索方法及装置 | |
US9110949B2 (en) | Generating estimates for query optimization | |
US20150227608A1 (en) | System and method for performing set operations with defined sketch accuracy distribution | |
US8051021B2 (en) | System and method for resource adaptive classification of data streams | |
US20240241884A1 (en) | Methods for stratified sampling-based query execution | |
CN111881359A (zh) | 互联网信息检索中的排序方法、系统、设备及存储介质 | |
CN110334290B (zh) | 一种基于MF-Octree的时空数据快速检索方法 | |
CN106874332B (zh) | 数据库访问方法和装置 | |
Glowacka et al. | Content-based image retrieval with multinomial relevance feedback | |
Sidney et al. | Performance prediction for set similarity joins | |
Yan et al. | The self-adaptive integrated algorithm on time-sensitive cluster evolution tracking | |
CN112488773A (zh) | 智能电视用户分类方法、计算机设备及存储介质 | |
CN110096529B (zh) | 一种基于多维矢量数据的网络数据挖掘方法和系统 | |
Wang et al. | A Vision of a Decisional Model for Re-optimizing Query Execution Plans Based on Machine Learning Techniques | |
Khan et al. | Model-based diversification for sequential exploratory queries | |
CN117435580B (zh) | 一种数据库参数筛选方法及相关设备 | |
CN118520008B (zh) | 一种面向Spark SQL的智能查询优化方法及系统 | |
CN116226297B (zh) | 数据模型的可视化搜索方法、系统、设备及存储介质 | |
CN108182201B (zh) | 基于重点关键词的应用拓展方法和装置 | |
US9471545B2 (en) | Approximating value densities |
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 |