System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库管理系统(database management system,dbms)中的查询处理,尤其涉及将查询解析为具有规范形式和存储的基数信息的逻辑步骤的dbms。
技术介绍
1、数据库查询优化方法使用基数和数据大小估计来在基于成本的查询优化系统中制定更好的查询。基数是对数据库特定列中数据值唯一性的度量。该列中的小基数值可能表明列中有大量重复元素。基数估计包括基表(例如,数据库列)和中间结果(例如,对基表进行运算产生的中间数据)的行数和不同值的数量。执行每个运算的输出数据量也是可以影响性能的基数值。行数、不同值的数量和数据大小在联接排序、选择联接方法类型和选择要在特定查询的执行计划中使用的聚合方法类型等操作中起着重要作用。
2、例如,dbms采用两种类型的联接算法:嵌套循环联接算法和排序归并联接算法。对于示例联接运算join(a,b),嵌套循环算法会将表a中的每条记录与表b中的每条记录进行比较以生成联接的表,而排序归并联接算法会将表a和表b分别排序并组合排序后的表以生成联接的表。对于相对较小的表,嵌套循环算法更高效,而对于相对较大的表,排序归并算法更高效。因此,dbms的查询优化器将从了解要联接的表的基数中受益。
技术实现思路
1、dbms解析查询以生成执行计划。在下文描述的示例中,执行计划是逻辑步骤的组合,这些逻辑步骤组合起来以实现数据库查询。逻辑步骤是对一个或多个数据库列起作用以产生中间结果的查询的子部分。多个逻辑步骤的结果可以在其它逻辑步骤中组合以执
2、这些示例包含在独立权利要求的特征中。进一步的实施例在从属权利要求、具体说明和附图中显而易见。
3、根据第一方面,一种查询处理设备,包括:通信接口,用于访问数据库和数据库目录;存储器,用于存储指令;以及处理器,耦合至所述存储器和所述通信接口。所述处理器执行以下指令:解析查询以为所述查询生成第一和第二执行计划,所述第一和第二执行计划中的每一个都包括一个或多个逻辑步骤;从所述数据库目录中检索所述第一和第二执行计划的先前执行的逻辑步骤的相应先前确定的基数值;从所述第一执行计划或所述第二执行计划中选择执行计划,基于所述先前确定的基数值,所述选定的执行计划具有较低的成本;通过所述通信接口对从所述数据库访问的数据执行所述选定的执行计划。
4、在根据所述第一方面的所述设备的第一种实现方式中,所述处理器用于以具有已定义语法并包括相应源名称的相应规范形式生成所述逻辑步骤。
5、在根据所述第一方面的所述设备的第二种实现方式中,所述处理器用于检索所述第一和第二执行计划的先前确定的基数值。
6、在根据所述第一方面的所述设备的第三种实现方式中,所述处理器用于完全限定所述第一和第二执行计划的每一个中的每个逻辑步骤的每个源名称。所述处理器还用于确定所述一个或多个逻辑步骤中的第一个逻辑步骤具有多个源名称并且是可交换的并在所述第一个逻辑步骤中按预定顺序排列所述多个源名称。
7、在根据所述第一方面的所述设备的第四种实现方式中,所述处理器用于确定所述第一个逻辑步骤用于运算,所述运算包括:inner join、full join、multi-way join、union或intersect。
8、在根据所述第一方面的所述设备的第五种实现方式中,所述处理器用于为所述第一和第二执行计划的每个逻辑步骤计算相应的哈希值。所述处理器还用于基于所述相应的哈希值访问所述数据库目录以检索所述第一和第二执行计划的所述逻辑步骤的所述相应先前确定的基数值。
9、在根据所述第一方面的所述设备的第六种实现方式中,所述一个或多个逻辑步骤包括结构化查询语言(structured query language,sql)运算,所述运算包括scan运算、join运算、aggregate scan by运算、union运算或intersect运算中的至少一个。
10、在根据所述第一方面的所述设备的第七种实现方式中,所述join运算包括singlejoin运算、multi-way join运算、left outer join运算、semi-join运算、anti-join运算和full outer join运算中的至少一个。
11、在根据所述第一方面的所述设备的第八种实现方式中,所述处理器用于执行所述选定的执行计划的每个逻辑步骤。所述处理器还用于为每个执行的逻辑步骤获取相应的实际基数值以及为每个执行的逻辑步骤获取所述相应的哈希值。所述处理器用于将所述相应的实际基数值存储在通过所述获取的相应哈希值索引的所述数据库目录中。
12、在根据所述第一方面的所述设备的第九种实现方式中,所述处理器还用于估计在所述数据库目录中不具有先前确定的基数值的所述每个执行计划中的每个逻辑步骤的基数值,并基于所述检索的先前确定的基数值和所述估计的基数值来选择具所述第一执行计划或所述第二执行计划中有较低成本的所述一个。
13、根据第二方面,一种用于处理查询的方法,用以解析查询以为所述查询生成第一和第二执行计划,所述第一和第二执行计划中的每一个都包括一个或多个逻辑步骤。所述方法检索所述第一和第二执行计划的先前执行的逻辑步骤的相应先前确定的基数值,所述方法选择所述第一执行计划或所述第二执行计划中具有较低成本的一个,并对数据库中的数据执行所述选定的执行计划。
14、在根据所述第二方面的所述方法的第一种实现方式中,所述解析所述查询包括以具有已定义语法并包括相应源名称的相应规范形式生成所述逻辑步骤。
15、在根据所述第二方面的所述方法的第二种实现方式中,所述检索所述第一和第二执行计划的所述先前执行的逻辑步骤的所述先前确定的基数值还包括检索所述第一和第二执行计划的先前确定的基数值。
16、在根据所述第二方面的所述方法的第三种实现方式中,所述解析所述查询包括完全限定所述第一和第二执行计划的每一个中的每个逻辑步骤的每个源名称。所述方法还包括确定所述一个或多个逻辑步骤中的第一个逻辑步骤具有多个源名称并且是可交换的并在所述第一个逻辑步骤中按预定顺序排列所述多个源名称。
17、在根据所述第二方面的所述方法的第四种实现方式中,所述确定所述第一个逻辑步骤是可交换的包括确定所述第一个逻辑步骤用于运算,所述运算包括:inner join、fulljoin、multi-way join、union或intersect。
本文档来自技高网...【技术保护点】
1.一种查询处理设备,其特征在于,包括:
2.根据权利要求1所述的查询处理设备,其特征在于,配置所述处理器解析所述查询的所述指令配置所述处理器以具有已定义语法并包括相应源名称的相应规范形式生成所述逻辑步骤。
3.根据权利要求1或2所述的查询处理设备,其特征在于,配置所述处理器检索所述第一和第二执行计划的所述先前执行的逻辑步骤的所述先前确定的基数值的所述指令还配置所述处理器检索所述第一和第二执行计划的所述先前确定的基数值。
4.根据权利要求1至3中任一项所述的查询处理设备,其特征在于,配置所述处理器解析所述查询的所述指令配置所述处理器:
5.根据权利要求4所述的查询处理设备,其特征在于,配置所述处理器确定所述第一个逻辑步骤可交换的所述指令包括配置所述处理器确定所述第一个逻辑步骤用于运算的指令,所述运算包括:Inner Join、Full Join、Multi-Way Join、Union或Intersect。
6.根据权利要求1至5中任一项所述的查询处理设备,其特征在于,所述指令还配置所述处理器:
7.根据权利
8.根据权利要求7所述的查询处理设备,其特征在于,所述Join运算包括Single Join运算、Multi-Way Join运算、Left Outer Join运算、Semi-Join运算、Anti-Join运算和FullOuter Join运算中的至少一个。
9.根据权利要求1至8中任一项所述的查询处理设备,其特征在于,配置所述处理器对所述数据库中的数据执行所述选定执行计划的所述指令配置所述处理器:
10.根据权利要求1至9中任一项所述的查询处理设备,其特征在于,配置所述处理器基于所述检索的先前确定的基数值来选择所述第一执行计划或所述第二执行计划中的一个的所述指令还配置所述处理器估计在所述数据库目录中不具有先前确定的基数值的每个执行计划中的每个逻辑步骤的基数值,并基于所述检索的先前确定的基数值和所述估计的基数值来选择所述第一执行计划或所述第二执行计划中具有较低成本的一个。
11.一种查询处理方法,其特征在于,所述方法包括:
12.根据权利要求11所述的查询处理方法,其特征在于,其中所述解析所述查询包括以具有已定义语法并包括相应源名称的相应规范形式生成所述逻辑步骤。
13.根据权利要求11或12所述的查询处理方法,其特征在于,其中所述检索所述第一和第二执行计划的所述先前执行的逻辑步骤的所述先前确定的基数值还包括检索所述第一和第二执行计划的所述先前确定的基数值。
14.根据权利要求11至13中任一项所述的查询处理方法,其特征在于,其中所述解析所述查询包括:
15.根据权利要求14所述的查询处理方法,其特征在于,所述确定所述第一个逻辑步骤是可交换的包括确定所述第一个逻辑步骤用于运算,所述运算包括:Inner Join、FullJoin、Multi-Way Join、Union或Intersect。
16.根据权利要求11至15中任一项所述的查询处理方法,其特征在于,还包括:
17.根据权利要求11至16中任一项所述的查询处理方法,其特征在于,其中所述解析所述查询包括将结构化查询语言(structured query language,SQL)查询解析为运算,所述运算包括Scan运算、Join运算、Aggregate Scan By运算、Union运算或Intersect运算中的至少一个。
18.根据权利要求11至17中任一项所述的查询处理方法,其特征在于,其中所述对所述数据库中的数据执行所述选定的执行计划包括:
19.根据权利要求11至18中任一项所述的查询处理方法,其特征在于,其中所述基于所述先前确定的基数值来选择所述第一执行计划或所述第二执行计划中的一个还包括估计在数据库目录中不具有先前确定的基数值的每个执行计划中的每个逻辑步骤的基数值,并基于所述先前确定的基数值和所述估计的基数值来选择所述第一执行计划或所述第二执行计划中具有较低成本的一个。
20.一种存储计算机指令的非瞬时性计算机可读介质,其特征在于,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
...
【技术特征摘要】
1.一种查询处理设备,其特征在于,包括:
2.根据权利要求1所述的查询处理设备,其特征在于,配置所述处理器解析所述查询的所述指令配置所述处理器以具有已定义语法并包括相应源名称的相应规范形式生成所述逻辑步骤。
3.根据权利要求1或2所述的查询处理设备,其特征在于,配置所述处理器检索所述第一和第二执行计划的所述先前执行的逻辑步骤的所述先前确定的基数值的所述指令还配置所述处理器检索所述第一和第二执行计划的所述先前确定的基数值。
4.根据权利要求1至3中任一项所述的查询处理设备,其特征在于,配置所述处理器解析所述查询的所述指令配置所述处理器:
5.根据权利要求4所述的查询处理设备,其特征在于,配置所述处理器确定所述第一个逻辑步骤可交换的所述指令包括配置所述处理器确定所述第一个逻辑步骤用于运算的指令,所述运算包括:inner join、full join、multi-way join、union或intersect。
6.根据权利要求1至5中任一项所述的查询处理设备,其特征在于,所述指令还配置所述处理器:
7.根据权利要求1至6中任一项所述的查询处理设备,其特征在于,所述一个或多个逻辑步骤包括结构化查询语言(structured query language,sql)运算,所述结构化查询语言运算包括scan运算、join运算、aggregate scan by运算、union运算或intersect运算中的至少一个。
8.根据权利要求7所述的查询处理设备,其特征在于,所述join运算包括single join运算、multi-way join运算、left outer join运算、semi-join运算、anti-join运算和fullouter join运算中的至少一个。
9.根据权利要求1至8中任一项所述的查询处理设备,其特征在于,配置所述处理器对所述数据库中的数据执行所述选定执行计划的所述指令配置所述处理器:
10.根据权利要求1至9中任一项所述的查询处理设备,其特征在于,配置所述处理器基于所述检索的先前确定的基数值来选择所述第一执行计划或所述第二执行计划中的一个的所述指令还配置所述处理器估计在所述数据库目录中不具有先前确定的基数值的每个执行计划中的每个逻辑步骤的基数值,并基于所述...
【专利技术属性】
技术研发人员:艾哈迈德·加扎尔,胡荣中,张明义,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。