CN116057518A - 使用机器学习模型的自动查询谓词选择性预测 - Google Patents
使用机器学习模型的自动查询谓词选择性预测 Download PDFInfo
- Publication number
- CN116057518A CN116057518A CN202180051522.2A CN202180051522A CN116057518A CN 116057518 A CN116057518 A CN 116057518A CN 202180051522 A CN202180051522 A CN 202180051522A CN 116057518 A CN116057518 A CN 116057518A
- Authority
- CN
- China
- Prior art keywords
- predicates
- model
- cff
- computer
- cumulative frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- 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
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- 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
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于基数估计的方法、计算机***和计算机程序产品。本发明的实施例包括访问数据库关系(302)。数据库关系用于从数据库关系中的每一个收集随机样本(304)。然后从随机样本生成训练数据(306)。训练数据用于建立累积频率函数(CFF)模型(308)。累积频率函数(CFF)模型然后提供用于SQL操作符的输出的基数估计(310)。
Description
背景技术
本发明总体上涉及计算领域,并且更具体地涉及使用机器学习的查询谓词选择性。查询优化是在通过在关系数据库中创建管理***来执行查询时有效的特征。
结构化查询语言(SQL)是创建并设计为管理存储在关系数据库中的数据的编程语言。结构化查询语言(SQL)可包括用于管理存储在关系数据库管理***(RDBMS)中的数据的特定编程语言。
关系数据库管理***(RDBMS)可通常包括通常在关系中的各个列上收集的单列统计数据。关系可以包括描述表中的关系或定义性特征或表之间的关系的元组或属性。例如,关系包括表上的数据值,并且关系数据库可以将数据值存储为关系或表。关系或表的集合可作为关系模型存储在数据库上。
关系模型可基于谓词逻辑,该谓词逻辑可包括要应用于表或关系的条件。在关系模型中,如果表格中多个列的统计没有被收集,则在计算基数时,可以假设谓词是独立的。谓词通常可以要求下限和上限的范围的形式来表示。BETWEEN(介于)谓词和range(范围)谓词可以被形成为针对每个谓词的单独值范围。Equality(等式)谓词可以具有相等的下限和上限。这可在基数估计中提供一些改进,然而,实现改进的基数估计的计算能力是广泛的、昂贵的和时间密集的。
基数估计在结构化查询语言(SQL)优化中起重要作用。基数在其涉及结构化查询语言(SQL)时是指在查询执行计划中由不同操作符处理的行的数量。进入操作符的行的数量可随着行的数量由不同操作符处理而减少或增加,直到最终结果被返回到应用程序或返回到发出查询的用户为止。这与列基数不同。列基数是指数据库表的列中的不同值的数量的统计数据。数据库表的扫描可以施加读取表中的所有行的谓词,然而,输出可以仅包括符合谓词条件的行。基数估计是对多少行符合条件对比多少行被输入到扫描操作符中的预测。
基于成本的优化器可以依赖于基数估计来计算访问计划执行成本并且选择最优访问计划。基于成本的优化器可以使用基于数据库表中的表数据值的统计数据来识别结构化查询的查询执行的有效计划。因此,结构化查询的基数的准确性可以对基于成本的优化器具有影响。基数的准确性有助于通过基数估计来选择最佳执行计划的总体目标。基数估计的准确性可能是困难的,或者使这一过程简化所需的信息收集起来是昂贵的,或者两者兼有。基数的准确性特别难以在具有相关或偏斜列的表上实现。不准确的基数估计可能导致选出缓慢的访问计划以及导致不可预测的查询性能。
发明内容
示例性实施例公开了用于基数估计的方法、计算机***和计算机程序产品。在示例性实施例的一个方面中,本发明包括访问数据库关系。数据库关系用于从数据库关系中的每项关系收集随机样本。然后从随机样本生成训练数据。训练数据用于建立累积频率函数(CFF)模型。累积频率函数(CFF)模型然后提供SQL操作符的输出的基数估计。
在示例性实施例的另一方面,方法、计算机***和程序产品包括扩展累积频率函数(CFF)模型以预测作为等式谓词的SQL操作符的基数估计
在示例性实施例的另一方面,方法、计算机***和程序产品包括扩展累积频率函数(CFF)模型以预测连接操作符的基数估计。
在示例性实施例的另一方面,方法、计算机***和程序产品包括扩展累积频率函数(CFF)模型以预测无损连接操作符的基数估计。
附图说明
从将结合附图阅读的对本发明的示例性实施例的以下详细描述中,本发明的这些和其他目的、特征和优点将变得清晰。附图的各种特征不是按比例的,因为图示是为了便于本领域技术人员结合具体实施方式理解本发明而清楚起见。在附图中:
图1示出了根据至少一个实施例的联网计算机环境;
图2是根据至少一个实施例的用于模型训练的采样和训练数据生成的框图示例;
图3是示出根据至少一个实施例的用于使用机器学习模型进行自动查询谓词选择性预测的自适应方法的过程的操作流程图;
图4是根据至少一个实施例的图1中所描绘的计算机和服务器的内部和外部组件的框图;
图5是根据本公开的实施例的包括图1中描绘的计算机***的说明性云计算环境的框图;以及
图6是根据本公开的实施例的图5的说明性云计算环境的功能层的框图。
具体实施方式
本文中公开了所要求保护的结构和方法的详细实施方式,然而,应当理解的是,所公开的实施方式仅仅是可以以各种形式体现的所要求保护的结构和方法的说明。然而,本发明可以以许多不同的形式体现并且不应被解释为局限于在此阐述的示例性实施例。相反,提供这些示例性实施方式是为了使本公开全面且完整,并且将本发明的范围充分传达给本领域技术人员。在描述中,可省略众所周知的特征和技术的细节以避免不必要地使所呈现的实施例模糊。
如前所述,查询优化是在通过在关系数据库中创建管理***来执行查询时有效的特征。结构化查询语言(SQL)是创建并设计为管理存储在关系数据库中的数据的编程语言。结构化查询语言(SQL)可包括用于管理存储在关系数据库管理***(RDBMS)中的数据的特定编程语言。
关系数据库管理***(RDBMS)可通常包括通常在关系中的各个列上收集的单列统计数据。关系可以包括描述表中的关系或定义性特征或表之间的关系的元组或属性。例如,关系包括表上的数据值,并且关系数据库可以将数据值存储为关系或表。关系或表的集合可作为关系模型存储在数据库上。
关系模型可基于谓词逻辑,该谓词逻辑可包括要应用于表或关系的条件。在关系模型中,如果表格中多个列的统计数据没有被收集,则在计算基数时,可以假设谓词是独立的。谓词通常可以要求下限和上限的范围的形式来表示。BETWEEN(介于)谓词和range(范围)谓词可以被形成为针对每个谓词的单独值范围。Equality(等式)可以具有相等的下限和上限。这可提供基数估计的改进,然而,实现改进的基数估计的计算能力是广泛的、昂贵的和时间密集的。
基数估计的准确性在结构化查询语言(SQL)优化中起重要作用。基数估计在结构化查询语言(SQL)优化中起重要作用。基数在其涉及结构化查询语言(SQL)时是指在查询执行计划中由不同操作符处理的行的数量。进入操作符的行的数量可随着行的数量由不同操作符处理而减少或增加,直到最终结果被返回到应用程序或被返回到发出查询的用户为止。这与列基数不同。列基数是指数据库表的列中的不同值的数量的统计数据。数据库表的扫描可以施加读取表中的所有行的谓词,然而,输出可以仅包括符合谓词条件的行。基数估计是对多少行符合条件对比多少行被输入到扫描操作符中的预测。
基于成本的优化器可以依赖于基数估计来计算访问计划执行成本并且选择最优访问计划。基于成本的优化器可以使用基于数据库表中的表数据值的统计数据来识别结构化查询的查询执行的有效计划。因此,结构化查询的基数的准确性可以对基于成本的优化器具有影响。基数的准确性有助于通过基数估计来选择最佳执行计划的总体目标。基数估计的准确性可能是困难的,或者使这一过程简化所需的信息收集起来是昂贵的,或者两者兼有。基数的准确性特别难以在具有相关或偏斜列的表上实现。不准确的基数估计可能导致选出缓慢的访问计划以及导致不可预测的查询性能。因此,创建利用机器学习来预测更准确的基数估计的***等可以是有利的。
以下描述的示例性实施例提供了用于机器学习和基数估计的***、方法和程序产品。照此,本发明的各实施例具有通过创建机器学习模型来学习和预测或近似将有助于估计所有关系操作符的基数的关系的多变量累积频率函数(CFF)来改善机器学习和查询优化的技术领域的能力。更具体地,累积频率函数(CFF)模型被创建以学习关系中的数据分布,并且所学习的数据分布可以由模型用于准确地估计基数或预测查询谓词的选择性。
表的基数是操作符在数据库中处理的行的数量或行流。查询通常可以对表应用谓词以获得感兴趣的行。这些谓词可以涉及不同关系比较操作符,例如,年龄=20和身高>=6是年龄列和身高列上的谓词。谓词的选择性是查询在应用谓词之后选择的行的百分比。在谓词过滤的上下文中,基数估计是相对于应用谓词之前的行的数量来估计在应用谓词之后的行的数量。
列可以在统计上相关,并且列的统计相关可以导致组合谓词的选择性,而取代典型的独立性假设。典型的独立性假设可以使用单个选择性的产物。选择性可包括使用从数据库表或索引收集的基数值的统计分析或计算公式。多个列索引可用于提供统计相关性信息,但定义用于统计相关性的许多索引造成维持索引的成本较高。在多个列统计数据上收集数据可避免多个谓词的估计误差,然而,决定收集和存储哪些列组合可能是困难且昂贵的。例如,假设与N个相关列的关系,覆盖所有列组合的多个列统计的数量是2^N。随着列组合的数量变大,关系数据库管理***(RDBMS)可以依赖于用户输入来确定从哪些列组收集统计数据。由于要求用户具有高技能水平和数据分布的深度知识水平,依赖于用户输入可能是不现实的,并且另外,将需要多个列之间的统计相关因子。
根据实施例,累积频率函数(CFF)或累积分布函数(CDF)可以用于估计在表中应用的、在索引扫描中应用的或用于其他过滤操作的谓词的选择性。累积频率可以包括统计分析,以在每个列大于或小于或等于特定或预定值时识别或计算查询选择性。累积频率函数(CFF)可描述识别例如值小于或等于特定值的概率的函数。多变量累积频率函数(CFF)可以包括覆盖两个或更多个列中的值的概率函数的标识。
机器学习可以用于近似关系的多变量累积频率函数(CFF)。可以建立不同类型的机器学习模型并将其用于创建累积频率函数(CFF)的预测分析和结果。模型可包括例如深度学习模型、神经网络、人工神经网络(ANN)和回归模型。深度学习还可与分层学习或深度结构化学习相关或被称为分层学习或深度结构化学习。术语模型可以用于指示不同类型的机器学习模型,诸如深度学习模型、神经网络模型、训练模型、基于注意力的模型、分类模型、回归模型或决策树模型。回归模型可以用于分析和计算统计数据和数据趋势,或者量化数据之间的关系或连接。深度学习模型可以用于例如学习累积频率函数(CFF)以用于预测或提供可以包括基数估计的输出。
训练和更新模型可以包括监督的、非监督的和半监督的机器学习过程。监督学习可以使用标记的数据集或标记的训练集来建立、训练和更新模型。无监督学习可以使用所有未标记的数据来训练模型。半监督学习可以使用标记的数据集和未标记的数据集两者来训练模型。
深度学习是可以基于输入数据或训练数据对信息进行分类的一种类型的机器学习。输入数据可以包括结构化数据或非结构化数据。结构化数据可以包括高度组织的数据,诸如电子表格、关系数据库或存储在固定字段中的数据。非结构化数据可以包括不被组织并且具有非常规内部结构的数据,诸如可移植文档格式(PDF)、图像、演示、网页、视频内容、音频内容、电子邮件、文字处理文档或多媒体内容。
根据实施例,可以使用不等式谓词(例如,具有≤操作符的谓词)来创建或生成累积频率函数(CFF)模型。将提供其他类型的谓词作为替换实施例。根据替换实施例,所建立的累积频率函数(CFF)模型的功能可以被扩展用于估计附加SQL谓词比较操作符的基数,诸如等式、BETWEEN、或严格不等式(即,大于或小于)。
根据替换实施例,使用≤建立的所建立的累积频率函数(CFF)模型可被扩展用于估计SQL谓词或具有更复杂谓词(诸如IN、OR和NOT谓词)的SQL操作符的基数。使用相同的建立的累积频率函数(CFF)模型,还可以结合多个基本和复杂谓词来考虑附加的复杂谓词。
根据替换实施例,所建立的累积频率函数(CFF)模型可被扩展成估计连接的基数。通常,现代数据库***依赖于在计算连接基数时使用假设来简化跨表的连接分布的计算。当没有统计数据来识别谓词之间的相关性时,经常使用的假设的三个示例可以包括独立性、一致性和包括。
独立性假设可以将多个谓词列值视为独立的,并且组合选择性是单个谓词选择性的乘积。在计算连接结果选择性时,一致性假设可忽略或偏斜统计信息。当假设具有较少不同值的列中的所有不同值存在于包含较高数量的不同值的其他表的连接列中时,包含假设简化了连接谓词选择性的计算。累积频率函数(CFF)的一种直接应用包括使用连接列来构建模型。这里,可以评估应用于未涉及连接中的使用列的谓词,以获得关于连接列的信息,以帮助连接基数估计。
根据替换实施例,所建立的累积频率函数(CFF)模型可以包括估计要扩展到无损连接或无损连接谓词的基数。例如,如果事实和一组维度关系之间的连接是无损的,则可以在事实表与所有维度表的连接上建立模型。
参照图1,描述了根据一个实施例的示例性联网计算机环境100。联网计算机环境100可以包括计算机102,计算机102具有处理器104和被启用以运行软件程序108的数据存储设备106和查询优化程序110a。联网计算机环境100还可以包括服务器112和通信网络116,服务器112被启用以运行可以与数据库114交互的查询优化程序110b。联网计算机环境100可以包括多个计算机102和服务器112,仅示出其中之一。通信网络116可包括不同类型的通信网络,诸如广域网(WAN)、局域网(LAN)、电信网络、无线网络、公共交换网络和/或卫星网络。应当理解,图1仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以基于设计和实现要求对所描绘的环境做出许多修改。
客户端计算机102可以经由通信网络116与服务器计算机112通信。通信网络116可以包括连接,例如有线、无线通信链路、或光纤电缆。如将参考图4讨论的,服务器计算机112可以分别包括内部组件902a和外部组件904a,并且客户端计算机102可以分别包括内部组件902b和外部组件904b。服务器计算机112还可在云计算服务模型中操作,诸如软件即服务(SaaS)、分析即服务(AaaS)、区块链即服务(BaaS)、平台即服务(PaaS)或基础设施即服务(IaaS)。服务器112还可以位于云计算部署模型中,诸如私有云、社区云、公共云或混合云。客户端计算机102可以是例如移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机、或能够运行程序、访问网络和访问数据库114的任何类型的计算设备。根据本实施例的不同实现方式,查询优化程序110a、110b可以与数据库114交互,该数据库114可以被嵌入在不同存储设备中,诸如但不限于计算机/移动设备102、联网服务器112、或云存储服务。
根据本实施例,使用客户端计算机102或服务器计算机112的用户可以使用查询优化程序110a、110b(分别地)来创建机器学习模型以近似关系的多变量累积频率函数(CFF),从而准确地预测查询谓词的基数。下面参照图2和图3更详细地解释查询优化方法。
现在参考图2,描述了示出根据至少一个实施例的由查询优化程序110a、110b使用的用于模型训练的采样和训练数据生成的示例的框图。数据库关系202可包括包含行和列中的值的数据库,诸如结构化数据或结构化数据值集合。数据库关系202可以具有指定数量的行和列。可以为用于获得随机样本204的过程而扫描数据库关系202,以生成数据库关系202中的所有或部分列组合。数据的随机样本204可以包括用于生成针对机器学习模型的训练数据206的数据。关系的随机收集的样本可以用于训练模型。可以在不需要知道如何执行查询以便构建预测模型的情况下选择随机样本204。
现在参考图3,描述了示出根据至少一个实施例的由查询优化程序110a、110b使用的用于自动化查询选择性预测过程300的示例性自适应方法的操作流程图。
在302,数据库关系202作为输入被访问。被访问的数据库关系202可以具有从小关系到大关系的不同大小。被访问和收集的数据库关系202可以例如包含10,000行的样本。10,000行的样本可被认为是较小的样本,并且该样本可从大得多的量的关系数据获得。可以针对具有n列c1、c2、…cn的关系R收集数据。为了简单起见并且作为示例,表1中提供了针对具有两个列(c1和c2)和每个列的值的单一关系(关系R)所访问和准备的数据。
关系中的数据也可以是字符数据,也可以包括字符数据,因此,关系数据可以包括数值数据、字符数据或两者。关系中的数据还可以包括日期数据、时间数据和诸如布尔数据的特殊类型的数据。如果关系中的数据是字符数据类型或包含字符数据类型,则关系中的数据可被编码为数字形式。
在304,收集每个关系的随机样本204。例如,可以以包含可以用作训练数据或用来训练模型的大量数据点组合的大关系来标识和收集随机样本204。可以扫描数据库关系202,并且收集的样本可以包括生成全部或部分的列组合。例如,如果数据库关系202对于给定关系R由一百万(1,000,000)行组成,则在收集统计数据或值的过程期间,随机样本可以为每个关系包括2,000行随机样本或储库样本。随机样本204过程可用于训练模型,并且可不需要为模型存储或保持训练数据以进行连续的基数预测。如果某些模型或模型训练需要,也可以存储训练数据。
在替代实施例中,可以使用非随机采样技术。例如,可以选择表中的每10行进行采样,或者可以选择表中的每20页的2行进行采样。
在306处,生成训练数据。训练数据可以通过使用被表示为向量的多个列利用回归模型来生成。训练数据可以使用被表示为具有来自随机样本的值的向量的多个列来表示谓词。可通过从样本数据计算或确定选择性来获得训练数据的期望或最佳输出。回归模型的输入可以包括每列的值,并且该值可以表示例如上限(即,<=)。来自回归模型的输出可以包括选择性,例如,如果乘以表的大小将产生表示合格行的数量的基数的相对数。谓词的选择性或组合谓词的选择性可以表示列的统计相关性,这些列被表示为向量。选择性可以是使用从这些列收集的基数值的统计分析。
例如,回归模型的输入是长度为c的向量,其中c是关系中的列的数量。训练数据点可以呈现任何数量的谓词。对于不具有谓词的列,可以使用列的最大值。例如,考虑具有3列c1、c2和c3的表,表示c1≤v1和c3≤v3的数据点可以由c1≤v1和c2≤max(c2)和c3≤v3表示,其中,max(c2)是第二列中的最大值。可以随机生成数据点,可以通过考虑关系中的所有值组合来生成数据点,或者可以通过考虑关系中的一些或部分的值组合来生成数据点。数据点可以通过找到累积频率函数(CFF)频点(例如,生成的训练数据206中的CFF列)来标记为满足数据点中表示的谓词的行的总数除以关系中的行的数量。
训练数据206可以通过计算行或每行(例如,表1中的行1-3)或在来自步骤304的随机样本中的每行的n维联合累积频率函数(CFF)F(p1,p2,…pn)来生成。累积频率函数(CFF)可以被定义为例如对于模型学习和近似而言实用的非递减且右连续的函数。
除了回归模型之外的其他模型可以用于建立在单个关系或多个关系上,并且所使用的其他模型可以取决于用作训练数据的列的数量。可以建立单个模型,或者可以建立多个模型。
在308,训练模型来创建累积频率函数(CFF)模型。累积频率函数(CFF)模型可以采用在步骤306中创建的表示谓词的值的向量,并且可以创建该模型以预测每个查询谓词的选择性。累积频率函数(CFF)模型可以使用不等式谓词(例如,具有≤操作符的谓词)来创建或生成。将提供其他类型的谓词作为替换实施例。累积频率函数(CFF)模型可以通过将问题公式化为回归问题来建立或生成,该回归问题可以与回归模型一起使用以解决回归问题。关系中的数据可被转换成浮点表示,该浮点表示除了数值数据类型之外还可允许处理字符数据类型。许多编码技术可用于转换过程。另外,对于类别值,映射表可以用于一组序数。
累积频率函数(CFF)可以识别关系中小于参考值的值的出现频率。考虑具有N列的关系R,R的累积频率函数(CFF)定义如下:
F(pp1,p2,…pn)=freq(c1≤v1,c2≤v2,…cn≤vn)
其中,(p1,p2,…pn)是对应于一组值(v1,v2,…vn)的谓词集合,该组值(v1,v2,…vn)与操作符≤一起被用在列集合(c1,c2,…cn)上,表示为c1≤v1AND c2≤v2,…AND cn≤vn。这里,freq(c1≤v1,c2≤v2,…cn≤vn)是该关系中满足谓词集合c1≤v1AND c2≤v2,…AND cn≤vn的行的数量相比该关系中的总行数。
根据替换实施例,308a,所建立的累积频率函数(CFF)模型的功能可以被扩展用于估计附加结构化查询语言(SQL)操作符的基数,SQL操作符比如用于等式谓词的操作符。在结构化查询语言(SQL)形式中,累积频率函数(CFF)可以表达如下:
所建立的累积频率函数(CFF)模型的功能可以被扩展用于预测附加SQL操作符,诸如等式谓词和BETWEEN谓词。由于在步骤308处建立的累积频率函数(CFF)模型是在连接操作符(例如,≤)上训练的,因此在308处的累积频率函数(CFF)模型可能不能直接预测其他谓词类型。可以根据谓词≤重写其他谓词类型,以便计算或算出选择性。
为了实现等式谓词的更好的基数估计,可以通过包括小的常数δ来生成额外的训练点。例如,针对数据点[p1,p2,p3],可以生成额外点[p1-δ,p2-δ,p3-δ],或可以生成带有最大值的其他组合,比如[p1-δ,max(c2),max(c3)],[max(c1),p2-δ,max(c3)],[p1-δ,p2-δ,max(c3)]。
表2中提供了表1中提供的数据的累积频率函数(CFF)模型(例如,回归模型)的训练数据的示例,其中δ=0.1。
扩展用于其他谓词类型的累积频率函数(CFF)模型可以在例如表3中示出。
根据替换实施例,308a,所建立的累积频率函数(CFF)模型可被扩展来用更复杂的谓词(诸如IN、OR和NOT谓词)估计SQL操作符的基数。更复杂的谓词(诸如IN、OR和NOT谓词)可以由一个或多个子项组成,该一个或多个子项通过从应用于在步骤308中创建的累积频率函数(CFF)模型的基本分量的选择性导出选择性而被处理或计算。例如,关系R的累积频率函数(CFF)的基本分量在上面描述为F(p1,p2,…pn)=freq(c1≤v1,c2≤v2,…cn≤vn)。
将基本分量应用于更复杂的谓词(例如,IN、OR和NOT)的示例可以将
F((p1andp2)OR(p3andp4)=
F(p1andp2)+F(p3andp4)-F(p1andp2)*F(p3andp4))
应用到NOT谓词:
F(NOT(p1))=(1-F(p1))
以及应用到OR谓词:
F((c1=10)OR(c1=20)OR(c1=50)=
F(c1=10)+F(c1=20)+F(c1=50)
以及应用到IN谓词:
F(c1IN(10,20,50)=F(c1=10)+F(c1=20)+F(c1=50)。
还可以结合如下表达的多个基本和复杂谓词来考虑复杂谓词:
F(c1IN(10,20,50)andp1=F(c1=10andp1)+F(c1=20andp1)+F(c1=50andp1);
或者
F(p1and(c1=10orc1=20orc1=30)=F(c1=10andp1)+F(c1=20andp1)+F(c1=30andp1);
或者
F(c1IN(10,20,50)andc2in(′A′,′B′,′C′)andp1andp2
=F(c1=10andc2=′A′andp1andp2)+F(c1=10andc2
=′B′andp1andp2)+F(c1=10andc2=′C′andp1andp2)+
F(c1=20andc2=′A′andp1andp2)+F(c1=20andc2
=′B′andp1andp2)+F(c1=20andc2=′C′andp1andp2)+
F(c1=30andc2=′A′andp1andp2)+F(c1=30andc2
=′B′andp1andp2)+F(c1=30andc2=′C′andp1andp2).
每一组推断可以在单批次中被计算以最小化计算针对复杂场景的多个推断的开销。在单批次中计算每批推断使对累积频率函数(CFF)模型的来回调用(即,被称为推断调用)最小化,从而导致执行计算的时间减少。
根据替代实施例,308b,可通过估计应用于连接的基数来扩展所建立的累积频率函数(CFF)模型。可以存储单个表模型以捕获非连接列的分布。可以使用利用列概率密度函数(PDF)确定的每个连接列的最频繁值来估计连接分布。概率密度函数(PDF)可以用于将累积频率函数(CFF)模型扩展到连接。例如,连接分布的估计可包含针对连接的结果中的每一值计算与非连接列的二进制组合的选择性。例如,假定存在两个表T1(c1、c2、c3、c4)和T2(c1、c2、c5、c6),其中c1是连接列且c2表示非连接列。选择性=求长度(T1(c1)==T1T2(c1)且T1(c2)==T1T2(c2))。选择性值是使用建立的累积频率函数(CFF)模型计算和预测的值。
每个选择性乘以该特定值的频率。结果可以是包含T1中的c2的每个值以及连接之后所有c1的改变值的数组。两个未连接列的分布可在类似步骤中被捕获或可捕获为n路连接的分布。c2选择性可用以与另一表或与多个其他表建立c2上的前向连接操作。
使用统计视图来改进所估计的连接基数的传统实现方式可使用关系数据库管理***(RDBMS)来利用多列统计数据和在物化查询表(MQT)上收集的统计数据。关系数据库管理***(RDBMS)的实例可以包括((IBM DB2和所有基于IBM DB2的商标和标志是国际商业机器公司和/或其子公司的商标或注册商标)。可存储多列统计数据且可提供一组值的不同分组的数量。不同分组的数量可以被用于解释应用于每对连接的多个等式连接谓词之间的相关性,比如T1 JOIN T2 ON T1.A=T2.A AND T1.B=T2.b。
所建立的累积频率函数(CFF)模型可以为成对连接提供附加益处,因为累积频率函数(CFF)模型可以用于解释与应用于参与连接的表的任何局部谓词的相关性。局部谓词可以包括例如范围谓词和具有表达式的谓词。使用多列统计数据可能假设存在跨越值的全域的一致性,而对于导致估计中的误差减小的模型来说,可能并不是这种情况。
根据替代实施例,308c,可通过估计无损连接的基数来扩展所建立的累积频率函数(CFF)模型。无损连接谓词可例如包括星型模式。如果在表之间存在被强制或发现的约束,则可以在模式中的所有表上定义单个模型。也可以在该模式中的星集上定义单个模型。
可为每个星建立模型,并且优化器可使用或利用模型来估计由模型覆盖的任何连接置换的基数。例如,考虑包含事实表F和一组维度表{D1,D2,…,Dn}的模式。如果事实与维度Di之间的每个连接是无损的,则可以在事实表F与所有维度表的连接上建立模型。由模型覆盖的列或表的子集的预测可通过将输入设定为不参与连接的每一列的最大值来计算。
在310处,提供查询谓词的基数的预测作为输出。所建立的累积频率函数(CFF)模型可以提供不要求存储的基数估计,尽管该基数估计可以被存储。虽然可存储数据,但是可不需要为模型存储或保持训练数据和基数估计以进行连续的基数预测。
可以理解,图2和3仅提供了一个实施例的图示并且不暗示关于可以如何实现不同实施例的任何限制。可以基于设计和实现要求对所描绘的实施例进行许多修改。
图4是根据本发明的说明性实施例的图1中描绘的计算机的内部和外部组件的框图900。应当理解,图4仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以基于设计和实现要求对所描绘的环境做出许多修改。
数据处理***902、904表示能够执行机器可读程序指令的任何电子设备。数据处理***902、904可以表示智能电话、计算机***、PDA或其他电子设备。数据处理***902、904可表示的计算***、环境和/或配置的示例包括但不限于个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持式或膝上型设备、多处理器***、基于微处理器的***、网络PC、小型计算机***和包括以上***或设备中的任一个的分布式云计算环境。
用户客户端计算机102和网络服务器112可以包括图4中所示的相应组的内部组件902a、902b和外部组件904a、904b。每组内部组件902a、902b包括在一条或多条总线912上的一个或多个处理器906、一个或多个计算机可读RAM 908和一个或多个计算机可读ROM 910,以及一个或多个操作***914和一个或多个计算机可读有形存储设备916。客户端计算机102中的一个或多个操作***914、软件程序108和查询优化程序110a以及网络服务器112中的查询优化程序110b可以存储在一个或多个计算机可读有形存储设备916上,以供一个或多个处理器906经由一个或多个RAM 908(其通常包括高速缓存存储器)执行。在图4示出的实施例中,每个计算机可读有形存储设备916是内部硬盘驱动器的磁盘存储设备。可替代地,每个计算机可读有形存储设备916是半导体存储设备,诸如ROM 910、EPROM、闪存或可存储计算机程序和数字信息的任何其他计算机可读有形存储设备。
每组内部组件902a、902b还包括R/W驱动或接口918,用于从诸如CD-ROM、DVD、记忆棒、磁带、磁盘、光盘或半导体存储设备的一个或多个便携式计算机可读有形存储设备920读取和向其写入。软件程序(诸如软件程序108和查询优化程序110a、110b)可以存储在一个或多个相应的便携式计算机可读有形存储设备920上,通过相应的R/W驱动或接口918读取并加载到相应的硬盘驱动器916中。
每组内部组件902a、902b还可以包括网络适配器(或交换机端口卡)或接口922,如TCP/IP适配器卡、无线wi-fi接口卡、或3G或4G无线接口卡或其他有线或无线通信链路。客户端计算机102中的软件程序108和查询优化程序110a以及网络服务器计算机112中的查询优化程序110b可以经由网络(例如,互联网、局域网或其他广域网)和相应的网络适配器或接口922从外部计算机(例如,服务器)下载。从网络适配器(或交换机端口适配器)或接口922,客户端计算机102中的软件程序108和查询优化程序110a以及网络服务器计算机112中的查询优化程序110b被加载到相应的硬盘驱动器916中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
每组外部组件904a、904b可以包括计算机显示监视器924、键盘926和计算机鼠标928。外部组件904a、904b还可包括触摸屏、虚拟键盘、触摸板、指点设备和其他人机接口设备。每组内部组件902a、902b还包括对接到计算机显示监视器924、键盘926和计算机鼠标928的设备驱动器930。设备驱动器930、R/W驱动或接口918和网络适配器或接口922包括硬件和软件(存储在存储设备916和/或ROM 910中)。
提前理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现方式不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模型,用于使得能够方便地、按需地实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的网络访问。可配置计算资源的共享池能够以最小的管理努力或与服务的提供者的交互被快速地供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
广泛的网络访问:能力可通过网络获得并且通过标准机制访问,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云***通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施或混合云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作***、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的、使用由提供者支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
分析即服务(AaaS):提供给消费者的能力是使用基于web或基于云的网络(即,基础设施)来访问分析平台。分析平台可以包括对分析软件资源的访问或者可以包括对相关数据库、语料库、服务器、操作***或存储的访问。消费者不管理或控制底层的基于web的或基于云的基础架构(包括数据库、语料库、服务器、操作***或存储),但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,该软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,而是具有对操作***、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参考图5,描述了说明性云计算环境1000。如图所示,云计算环境1000包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点100,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话1000A、台式计算机1000B、膝上型计算机1000C和/或汽车计算机***1000N。节点100可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境1000提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图5中所示的计算设备1000A-N的类型仅旨在是说明性的,并且计算节点100和云计算环境1000可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参考图6,示出了由云计算环境1000提供的一组功能抽象层1100。应提前理解,图6中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层1102包括硬件和软件组件。硬件组件的示例包括:大型机1104;基于RISC(精简指令集计算机)架构的服务器1106;服务器1108;刀片式服务器1110;存储设备1112;以及网络和联网组件1114。在一些实施例中,软件组件包括网络应用服务器软件1116和数据库软件1118。
虚拟化层1120提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器1122;虚拟存储1124;虚拟网络1126,包括虚拟专用网络;虚拟应用和操作***1128;以及虚拟客户端1130。
在一个示例中,管理层1132可以提供以下描述的功能。资源供应1134提供计算资源和用于在云计算环境内执行任务的其他资源的动态采购。计量和定价1136在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户1138为消费者和***管理员提供对云计算环境的访问。服务水平管理1140提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行1142为云计算资源提供预安排和采购,根据该SLA预期该云计算资源的未来要求。
工作负载层1144提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航1146;软件开发和生命周期管理1148;虚拟教室教育传递1150;数据分析处理1152;事务处理1154;以及查询优化1156。查询优化程序110a、110b提供一种预测基数估计的方式。
本发明可以是任何可能的技术细节集成水平的***、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡或具有记录在其上的指令的槽中的凸出结构之类的机械编码设备、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为瞬态信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过导线发射的电信号。
本文所述的计算机可读程序指令,可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言、python程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个框中规定的功能/动作的方面的指令的制造品。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的***来实现。
已经出于说明的目的呈现了本发明的各种实施例的描述,但并不旨在是详尽的或者限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是清晰的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
Claims (25)
1.一种用于基数估计的方法,所述方法包括:
访问数据库关系;
从所述数据库关系中的每一个收集随机样本;
生成训练数据;
创建累积频率函数(CFF)模型;以及
预测多个结构化查询语言(SQL)谓词的基数估计。
2.根据权利要求1所述的方法,进一步包括:
扩展所述累积频率函数(CFF)模型以预测所述多个结构化查询语言(SQL)谓词中的一些SQL谓词的基数估计,其中所述多个结构化查询语言(SQL)谓词中的所述一些SQL谓词是等式谓词。
3.根据权利要求1所述的方法,进一步包括:
扩展所述累积频率函数(CFF)模型以预测连接谓词的基数估计。
4.根据权利要求1所述的方法,进一步包括:
扩展所述累积频率函数(CFF)模型以预测无损连接谓词的基数估计。
5.根据权利要求1所述的方法,其中,所述多个结构化查询语言(SQL)操作符中的一些SQL操作符是不等式谓词。
6.根据权利要求1所述的方法,其中,通过使用被表示为具有来自所述随机样本的值的向量的多个列生成所述训练数据。
7.根据权利要求6所述的方法,其中,来自所述随机样本的所述值表示谓词以及所述训练数据的最佳输出,其中,所述训练数据的所述最佳输出通过从所述随机样本计算所述选择性来获得。
8.根据权利要求1所述的方法,其中,所述累积频率函数(CFF)模型确定每个查询谓词的选择性。
9.根据权利要求1所述的方法,其中,所述数据库关系包括数值数据和字符数据。
10.一种用于基数估计的计算机***,包括:
一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储介质、以及存储在所述一个或多个计算机可读有形存储介质中的至少一个上的用于由所述一个或多个处理器中的至少一个经由所述一个或多个计算机可读存储器中的至少一个执行的程序指令,其中所述计算机***能够执行包括以下步骤的方法:
访问数据库关系;
从所述数据库关系中的每一个收集随机样本;
生成训练数据;
创建累积频率函数(CFF)模型;以及
预测多个结构化查询语言(SQL)谓词的基数估计。
11.根据权利要求10所述的计算机***,进一步包括:
扩展所述累积频率函数(CFF)模型以预测所述多个结构化查询语言(SQL)谓词中的一些SQL谓词的基数估计,其中所述多个结构化查询语言(SQL)谓词中的所述一些SQL谓词是等式谓词。
12.根据权利要求10所述的计算机***,进一步包括:
扩展所述累积频率函数(CFF)模型以预测连接谓词的基数估计。
13.根据权利要求10所述的计算机***,进一步包括:
扩展所述累积频率函数(CFF)模型以预测无损连接谓词的基数估计。
14.根据权利要求10所述的计算机***,其中,所述多个结构化查询语言(SQL)操作符中的一些是不等式谓词。
15.根据权利要求10所述的计算机***,其中,通过使用被表示为具有来自所述随机样本的值的向量的多个列来生成所述训练数据。
16.根据权利要求15所述的计算机***,其中,来自所述随机样本的所述值表示谓词以及所述训练数据的最佳输出,其中,所述训练数据的所述最佳输出通过从所述随机样本计算所述选择性来获得。
17.根据权利要求10所述的计算机***,其中,所述累积频率函数(CFF)模型确定每个查询谓词的选择性。
18.根据权利要求10所述的计算机***,其中,所述数据库关系包括数值数据和字符数据。
19.一种用于基数估计的计算机程序产品,包括:
一个或多个计算机可读有形存储介质以及存储在所述一个或多个计算机可读有形存储介质中的至少一个上的程序指令,所述程序指令可由处理器执行以使所述处理器执行一种方法,所述方法包括:
访问数据库关系;
从所述数据库关系中的每一个收集随机样本;
生成训练数据;
创建累积频率函数(CFF)模型;以及
预测多个结构化查询语言(SQL)谓词的基数估计。
20.根据权利要求20所述的计算机程序产品,进一步包括:
扩展所述累积频率函数(CFF)模型以预测所述多个结构化查询语言(SQL)谓词中的一些SQL谓词的基数估计,其中所述多个结构化查询语言(SQL)谓词中的所述一些SQL谓词是等式谓词。
21.根据权利要求1所述的方法,进一步包括:
扩展所述累积频率函数(CFF)模型以预测连接谓词的基数估计。
22.根据权利要求1所述的方法,进一步包括:
扩展所述累积频率函数(CFF)模型以预测无损连接谓词的基数估计。
23.根据权利要求1所述的方法,其中,所述多个结构化查询语言(SQL)操作符中的一些SQL操作符是不等式谓词。
24.根据权利要求1所述的方法,其中,通过使用被表示为具有来自所述随机样本的值的向量的多个列来生成所述训练数据。
25.根据权利要求24所述的计算机程序产品,其中,来自所述随机样本的所述值表示谓词以及所述训练数据的最佳输出,其中,所述训练数据的所述最佳输出通过从所述随机样本计算所述选择性来获得。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/004,225 | 2020-08-27 | ||
US17/004,225 US11720565B2 (en) | 2020-08-27 | 2020-08-27 | Automated query predicate selectivity prediction using machine learning models |
PCT/IB2021/057102 WO2022043798A1 (en) | 2020-08-27 | 2021-08-03 | Automated query predicate selectivity prediction using machine learning models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116057518A true CN116057518A (zh) | 2023-05-02 |
Family
ID=80352765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180051522.2A Pending CN116057518A (zh) | 2020-08-27 | 2021-08-03 | 使用机器学习模型的自动查询谓词选择性预测 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11720565B2 (zh) |
CN (1) | CN116057518A (zh) |
WO (1) | WO2022043798A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11928086B2 (en) * | 2021-12-03 | 2024-03-12 | Thoughtspot, Inc. | Automatic machine learning data modeling in a low-latency data access and analysis system |
CN116932580A (zh) * | 2022-03-31 | 2023-10-24 | 华为技术有限公司 | 一种基数估计方法及装置 |
US11921719B1 (en) * | 2022-09-14 | 2024-03-05 | International Business Machines Corporation | Automated query selectivity predictions using query graphs |
CN117827885A (zh) * | 2023-12-25 | 2024-04-05 | 天云融创数据科技(北京)有限公司 | 数据库语句生成方法、装置、设备及介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995957A (en) | 1997-02-28 | 1999-11-30 | International Business Machines Corporation | Query optimization through the use of multi-column statistics to avoid the problems of column correlation |
US6353818B1 (en) | 1998-08-19 | 2002-03-05 | Ncr Corporation | Plan-per-tuple optimizing of database queries with user-defined functions |
US6738755B1 (en) | 1999-05-19 | 2004-05-18 | International Business Machines Corporation | Query optimization method for incrementally estimating the cardinality of a derived relation when statistically correlated predicates are applied |
US7890491B1 (en) | 1999-12-22 | 2011-02-15 | International Business Machines Corporation | Query optimization technique for obtaining improved cardinality estimates using statistics on automatic summary tables |
US6763359B2 (en) | 2001-06-06 | 2004-07-13 | International Business Machines Corporation | Learning from empirical results in query optimization |
US7136850B2 (en) * | 2002-12-20 | 2006-11-14 | International Business Machines Corporation | Self tuning database retrieval optimization using regression functions |
US7447680B2 (en) | 2004-07-29 | 2008-11-04 | International Business Machines Corporation | Method and apparatus for optimizing execution of database queries containing user-defined functions |
US20080046455A1 (en) * | 2006-08-16 | 2008-02-21 | International Business Machines Corporation | Query feedback-based configuration of database statistics |
US20080306903A1 (en) | 2007-06-08 | 2008-12-11 | Microsoft Corporation | Cardinality estimation in database systems using sample views |
US9361339B2 (en) * | 2013-11-26 | 2016-06-07 | Sap Se | Methods and systems for constructing q, θ-optimal histogram buckets |
US10318866B2 (en) | 2015-03-05 | 2019-06-11 | International Business Machines Corporation | Selectivity estimation using artificial neural networks |
US10706354B2 (en) | 2016-05-06 | 2020-07-07 | International Business Machines Corporation | Estimating cardinality selectivity utilizing artificial neural networks |
US11194809B2 (en) | 2016-12-02 | 2021-12-07 | International Business Machines Corporation | Predicting performance of database queries |
US20180329951A1 (en) | 2017-05-11 | 2018-11-15 | Futurewei Technologies, Inc. | Estimating the number of samples satisfying the query |
US11074256B2 (en) | 2018-03-30 | 2021-07-27 | Microsoft Technology Licensing, Llc | Learning optimizer for shared cloud |
US11531671B2 (en) * | 2019-08-19 | 2022-12-20 | Technion Research & Development Foundation Limited | Estimating query cardinality |
-
2020
- 2020-08-27 US US17/004,225 patent/US11720565B2/en active Active
-
2021
- 2021-08-03 CN CN202180051522.2A patent/CN116057518A/zh active Pending
- 2021-08-03 WO PCT/IB2021/057102 patent/WO2022043798A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220067045A1 (en) | 2022-03-03 |
WO2022043798A1 (en) | 2022-03-03 |
US11720565B2 (en) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030521B2 (en) | Estimating cardinality selectivity utilizing artificial neural networks | |
TWI620075B (zh) | 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法 | |
CN107615275B (zh) | 估计用于运行数据挖掘服务的计算资源的方法和*** | |
US11500830B2 (en) | Learning-based workload resource optimization for database management systems | |
CN116057518A (zh) | 使用机器学习模型的自动查询谓词选择性预测 | |
CN111563141B (zh) | 用于处理输入问题以查询数据库的方法和*** | |
US11501111B2 (en) | Learning models for entity resolution using active learning | |
US11861469B2 (en) | Code generation for Auto-AI | |
US20220277031A1 (en) | Guided exploration for conversational business intelligence | |
US20190370599A1 (en) | Bounded Error Matching for Large Scale Numeric Datasets | |
US20230236829A1 (en) | Monolithic computer application refactoring | |
Chen et al. | Silhouette: Efficient cloud configuration exploration for large-scale analytics | |
US20230029218A1 (en) | Feature engineering using interactive learning between structured and unstructured data | |
US11741101B2 (en) | Estimating execution time for batch queries | |
WO2023077989A1 (en) | Incremental machine learning for a parametric machine learning model | |
US20230222358A1 (en) | Artificial intelligence operations adaptive multi-granularity event grouping | |
US11782918B2 (en) | Selecting access flow path in complex queries | |
US20230009237A1 (en) | Multi-dimensional data labeling | |
US20220188674A1 (en) | Machine learning classifiers prediction confidence and explanation | |
US20210232891A1 (en) | Neural network model compression with structured weight unification | |
US11244007B2 (en) | Automatic adaption of a search configuration | |
US11947561B2 (en) | Heterogeneous schema discovery for unstructured data | |
US11921756B2 (en) | Automated database operation classification using artificial intelligence techniques | |
US11886437B2 (en) | Reduced latency query processing | |
JP7329028B2 (ja) | 機械学習を利用した応答時間予測によって検索システムを運営する方法および装置 |
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 |