1 .一种查询方法,其特征在于,所述方法包括:
获取目标语句,其中,所述目标语句为结构化查询语言;
确定所述目标语句的查询算子树,得到第一查询算子树,其中,所述第一查询算子树的
节点表示算子或数据表;
在所述第一查询算子树的节点表示的算子包括关联连接算子和单连接算子的情况下,
将所述关联连接算子下推到所述单连接算子之下,得到第二查询算子树;
基于所述第二查询算子树进行数据查询。
2 .根据权利要求1所述的方法,其特征在于,所述将所述关联连接算子下推到所述单连
接算子之下,包括:
确定目标数据表的去重关联列,其中,所述目标数据表为所述目标语句中的外层查询
语句指示查询的数据表,所述去重关联列表示对所述目标数据表的关联列进行数据去重之
后的结果;
基于所述去重关联列,将所述关联连接算子下推到所述单连接算子之下。
3 .根据权利要求2所述的方法,其特征在于,所述基于所述去重关联列,将所述关联连
接算子下推到所述单连接算子之下,包括:
确定所述关联连接算子中的谓词,得到第一谓词;
确定所述第一谓词是否涉及目标列,得到判别信息,其中,所述目标列为所述单连接算
子的右侧表中的列;
基于所述判别信息和所述去重关联列,将所述关联连接算子下推到所述单连接算子之
下。
4 .根据权利要求3所述的方法,其特征在于,所述基于所述判别信息和所述去重关联
列,将所述关联连接算子下推到所述单连接算子之下,包括:
在所述判别信息表示所述第一谓词不涉及所述目标列的情况下,确定待生成的第二查
询算子树的根节点表示单连接算子,所述根节点的第一左子节点表示第一关联连接算子,
所述根节点的第一右子节点表示第二关联连接算子,所述第一左子节点的左子节点表示所
述去重关联列对应的数据表,所述第一左子节点的右子节点表示单连接算子的左侧表,所
述第一右子节点的左子节点表示所述去重关联列对应的数据表,所述第一右子节点的右子
节点表示单连接算子的右侧表。
5 .根据权利要求3所述的方法,其特征在于,所述基于所述判别信息和所述去重关联
列,将所述关联连接算子下推到所述单连接算子之下,包括:
在所述判别信息表示所述第一谓词涉及所述目标列的情况下,基于所述第一谓词,确
定所述第一谓词对应的目标处理结果;
基于所述目标处理结果和所述去重关联列,将所述关联连接算子下推到所述单连接算
子之下。
6 .根据权利要求5所述的方法,其特征在于,所述基于所述目标处理结果和所述去重关
联列,将所述关联连接算子下推到所述单连接算子之下,包括:
在所述目标处理结果一定为假值的情况下,确定待生成的第二查询算子树的根节点表
示所述第一谓词,所述根节点的唯一子节点表示具有单一结果约束的内连接算子,所述唯
一子节点的第二左子节点表示第三关联连接算子,所述唯一子节点的第二右子节点表示第
权 利 要 求 书
1/2 页
2
文档被以下合辑收录
评论