1 .一种基于向量化执行引擎的数据库表达式计算的复用方法,其特征在于,包括:
获取输入的查询指令;
通过语义分析,将所述查询指令包括的多个表达式加入逻辑投影节点;
在所述逻辑投影节点,根据所述表达式的深度,分析所述多个表达式中的公共表达式;
在所述逻辑投影节点,根据所述公共表达式的内容,以及预先为所述表达式分配的列
ID,生成所述表达式与所述公共表达式之间的第一列ID映射关系,以及生成所述公共表达
式之间的第二列ID映射关系;
根据所述逻辑投影节点,生成物理投影节点;
在所述物理投影节点,按照所述公共表达式的深度由低到高的顺序,依次按列计算每
个公共表达式,其中,在计算任意的第一深度的公共表达式时,根据所述第二列ID映射关系
获取所述第一深度的公共表达式包括的低于所述第一深度的第二深度的公共表达式的列
ID,通过块输入所述第二深度的公共表达式的计算结果的列;
在所述物理投影节点,依次按列计算每个表达式,其中,在计算任意的表达式时,根据
所述第一列ID映射关系获取与所述任意的表达式对应的公共表达式的列ID,通过块输入与
所述任意的表达式对应的公共表达式的计算结果的列;
通过块输出每个表达式的计算结果的列;
在所述逻辑投影节点,根据所述表达式的深度,分析所述多个表达式中的公共表达式,
包括:在所述逻辑投影节点,按照表达式的深度由低到高的顺序依次处理所述多个表达式,
其中,在处理任意的第三深度的表达式时,若检验到所述第三深度的表达式中包含低于所
述第三深度的第四深度的表达式,将被包含的第四深度的表达式确定为公共表达式;
其中,通过语义分析,将所述查询指令包括的多个表达式加入逻辑投影节点,包括:
通过语义分析,确定所述查询指令包括的多个表达式的复杂度;
根据所述查询指令包括的多个表达式的复杂度,将所述查询指令包括的多个表达式加
入一个或多个逻辑投影节点。
2.如权利要求1所述的方法,其特征在于,所述逻辑投影节点的个数为多个,所述物理
投影节点的个数为多个,各个物理投影节点分别与各个逻辑投影节点一一对应。
3 .如权利要求1所述的方法,其特征在于,在所述逻辑投影节点,按照表达式的深度由
低到高的顺序依次处理所述多个表达式,其中,在处理任意的第三深度的表达式时,若检验
到所述第三深度的表达式中包含低于所述第三深度的第四深度的表达式,将被包含的第四
深度的表达式确定为公共表达式,包括:
初始化第一深度映射关系和第二深度映射关系;
按照表达式的深度由低到高的顺序依次将所述表达式和所述表达式的深度写入所述
第一深度映射关系,其中,在写入任意的第三深度的表达式时,若检验到所述第三深度的表
达式中包含低于所述第三深度的第四深度的表达式,将被包含的第四深度的表达式确定为
公共表达式,将所述公共表达式和所述公共表达式的深度写入所述第二深度映射关系。
4 .一种基于向量化执行引擎的数据库表达式计算的复用装置,其特征在于,包括:
查询指令获取模块,用于获取输入的查询指令;
语义分析模块,用于通过语义分析,将所述查询指令包括的多个表达式加入逻辑投影
节点;
权 利 要 求 书
1/2 页
2
评论