【技术实现步骤摘要】
一种基于向量化执行引擎的数据库表达式计算的复用方法
本专利技术涉及数据库优化
,尤其涉及一种基于向量化执行引擎的数据库表达式计算的复用方法、装置、可读存储介质及计算设备。
技术介绍
SQL是大多数关系型数据库支持的标准查询接口,大多数商业智能(BusinessIntelligence,BI)工具和数据分析师都会使用SQL来进行数据查询,但是BI工具和数据分析师生成的SQL可能不是很高效,会有冗余部分。比如对于SQL语句:selecta+b,a+d,a+b+c,a+b+c+dfromtable,现在的大多数数据库,都会依次计算表达式a+b,a+d,a+b+c和a+b+c+d。但是其中a+b,a+b+c是公共表达式,实际上只需要计算一次即可,不需要重复计算。为解决以上问题,业内在编译器领域做了公共表达式优化。编译器在进行优化时,会用一个变量代替公共表达式的计算结果,并用公共表达式对应的变量重写所有表达式。比如,对于两个表达式a=b*c+g,d=b*c*e;会重写成tmp=b*c;a=tmp+g;d=tmp* ...
【技术保护点】
1.一种基于向量化执行引擎的数据库表达式计算的复用方法,其特征在于,包括:/n获取输入的查询指令;/n通过语义分析,将所述查询指令包括的多个表达式加入逻辑投影节点;/n在所述逻辑投影节点,根据所述表达式的深度,分析所述多个表达式中的公共表达式;/n在所述逻辑投影节点,根据所述公共表达式的内容,以及预先为所述表达式分配的列ID,生成所述表达式与所述公共表达式之间的第一列ID映射关系;/n根据所述逻辑投影节点,生成物理投影节点;/n在所述物理投影节点,依次按列计算每个公共表达式;/n在所述物理投影节点,依次按列计算每个表达式,其中,在计算任意的表达式时,根据所述第一列ID映射关 ...
【技术特征摘要】
1.一种基于向量化执行引擎的数据库表达式计算的复用方法,其特征在于,包括:
获取输入的查询指令;
通过语义分析,将所述查询指令包括的多个表达式加入逻辑投影节点;
在所述逻辑投影节点,根据所述表达式的深度,分析所述多个表达式中的公共表达式;
在所述逻辑投影节点,根据所述公共表达式的内容,以及预先为所述表达式分配的列ID,生成所述表达式与所述公共表达式之间的第一列ID映射关系;
根据所述逻辑投影节点,生成物理投影节点;
在所述物理投影节点,依次按列计算每个公共表达式;
在所述物理投影节点,依次按列计算每个表达式,其中,在计算任意的表达式时,根据所述第一列ID映射关系获取与所述任意的表达式对应的公共表达式的列ID,通过块输入与所述任意的表达式对应的公共表达式的计算结果的列;
通过块输出每个表达式的计算结果的列。
2.如权利要求1所述的方法,其特征在于,还包括:
在所述逻辑投影节点,根据所述公共表达式的内容,以及预先为所述表达式分配的列ID,生成所述公共表达式之间的第二列ID映射关系;
在所述物理投影节点,依次按列计算每个公共表达式,包括:
在所述物理投影节点,按照所述公共表达式的深度由低到高的顺序,依次按列计算每个公共表达式,其中,在计算任意的第一深度的公共表达式时,根据所述第二列ID映射关系获取所述第一深度的公共表达式包括的低于所述第一深度的第二深度的公共表达式的列ID,通过块输入所述第二深度的公共表达式的计算结果的列。
3.如权利要求1所述的方法,其特征在于,所述逻辑投影节点的个数为多个,所述物理投影节点的个数为多个,各个物理投影节点分别与各个逻辑投影节点一一对应;
通过语义分析,将所述查询指令包括的多个表达式加入逻辑投影节点,包括:
通过语义分析,确定所述查询指令包括的多个表达式的复杂度;
根据所述查询指令包括的多个表达式的复杂度,将所述查询指令包括的多个表达式分别加入不同的逻辑投影节点;
其中,所述多个表达式包括中间计算结果的表达式。
4.如权利要求1所述的方法,其特征在于,在所述逻辑投影节点,根据所述表达式的深度,分析所述多个表达式中的公共表达式,包括:
在所述逻辑投影节点,按照表达式的深度由低到高的顺序依次处理所述多个表达式,其中,在处理任意的第三深度的表达式时,若检验到所述第三深度的表达式中包含低于所述第三深度的第四深度的表达式,将被包含的第四深度的表达式确定为公共表达式。
5.如权利要求4所述的方法,其特征在于,在所述逻辑投影节点,按照表达式的深度由低到高的顺序依次处理所述多个表达式,其中,在处理任意的第三深度的表达式时,若检验到所述第三深度的表达式中包含低于所述第三深度的第四深度的表达式,将被包含的第四深度的表达式确定为公共表达式,包括:
初...
【专利技术属性】
技术研发人员:康凯森,
申请(专利权)人:北京鼎石纵横科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。