1 .一种集合操作符查询优化方法,其特征在于,所述集合操作符查询优化方法包括以
下步骤:
在触发数据查询指令时,确定所述数据查询指令对应的执行树,其中,所述执行树包含
反映集合操作符的数据并集运算流程的树状结构;
对所述树状结构中的复数层的算子进行结构压缩优化,其中,所述算子为所述数据并
集运算流程所使用的算子;
根据结构压缩优化后的执行树,响应所述数据查询指令。
2 .如权利要求1所述的集合操作符查询优化方法,其特征在于,所述对所述树状结构中
的复数层的算子进行结构压缩优化的步骤,
在所述集合操作符相关的树状结构为相邻的多层节点,且所述多层节点中包含复数层
的算子时,将所述多层节点合并为单层节点,并将所述复数层的算子进行结构压缩优化;
根据所述复数层的算子的优化结果,将所述单层节点进行扩展,使其接收任意路数的
数据。
3 .如权利要求2所述的集合操作符查询优化方法,其特征在于,若所述多层节点由相邻
的上一层节点和下一层节点组成,所述上一层节点和所述下一层节点中均包含UNION ALL
算子和所述UNION ALL算子对应子节点的RECV算子,
则所述根据所述复数层的算子的优化结果,将所述单层节点进行扩展,使其接收任意
路数的数据的步骤,包括:
确定所述下一层节点中UNION ALL算子的父节点;
若所述父节点为所述上一层节点中的RECV算子,且所述上一层节点中的RECV算子的父
节点为所述上一层节点中的UNION ALL算子,则将所述下一层节点中的UNION ALL算子删
除,并将所述上一层节点中的UNION ALL算子进行扩展,使其接收所述下一层节点中的RECV
算子所提供的数据,以使所述上一层节点和所述下一层节点合并为单层节点。
4 .如权利要求3所述的集合操作符查询优化方法,其特征在于,所述将所述上一层节点
中的UNION ALL算子进行扩展,使其接收所述下一层节点中的RECV算子所提供的数据,以使
所述上一层节点和所述下一层节点合并为单层节点的步骤之后,所述方法还包括:
确定所述单层节点中的UNION ALL算子的输出列的数据类型和各RECV算子对应的输入
列的数据类型是否匹配;
若不匹配,则在所述单层节点生成数据类型更改函数,并删除所述各RECV算子,以及将
所述数据类型更改函数下推至数据输入侧,以供所述数据输入侧对应的第一投影算子,根
据所述数据类型更改函数预先将所述输入列的数据进行修改,使得所述输入列的数据类型
和所述输出列的数据类型匹配。
5 .如权利要求4所述的集合操作符查询优化方法,其特征在于,所述若不匹配,则在所
述单层节点中所需生成的数据类型更改函数,并将所述数据类型更改函数下推至数据输入
侧的步骤之后,所述方法还包括以下任一项:
若所述单层节点对接上层不存在运算父节点,则将所述单层节点中的UNION ALL算子
修改为第二投影算子,并保留一个RECV算子,以根据所述RECV算子接收所述第一投影算子
提供的数据;
若所述单层节点对接上层存在运算父节点,且所述运算父节点为RECV算子,则将所述
权 利 要 求 书
1/2 页
2
文档被以下合辑收录
评论