[发明专利]数据库执行计划的优化方法和装置有效
申请号: | 201710074396.8 | 申请日: | 2017-02-10 |
公开(公告)号: | CN106991116B | 公开(公告)日: | 2020-04-14 |
发明(设计)人: | 李阳;蒋志勇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/26 | 分类号: | G06F16/26 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥;王剑 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 执行 计划 优化 方法 装置 | ||
1.一种数据库执行计划的优化方法,其特征在于,所述方法包括:
根据数据库查询语句生成原始执行计划;
判断所述原始执行计划是否满足预设的晚期物化条件;
若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;
基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;
若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询;
其中,所述根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,包括:
将所述原始执行计划中需要进行数据操作的属性的物化时机确定为早期物化;
将所述原始执行计划中无需进行数据操作的属性的物化时机确定为晚期物化。
2.根据权利要求1所述的方法,其特征在于,所述基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,包括:
基于早期物化的属性生成目标执行计划的左子树,并在所述左子树中增加行ID的输出;
基于晚期物化的属性生成目标执行计划的右子树,并在所述右子树中增加行ID的约束条件,所述行ID的约束条件是行ID等于所述左子树输出的行ID。
3.根据权利要求1所述的方法,其特征在于,所述晚期物化条件包括:
针对单表查询;
存在筛选条件;
存在物化后的数据操作;以及
存在仅执行物化但无需数据操作的属性。
4.根据权利要求3所述的方法,其特征在于,
所述物化后的数据操作包括:sort操作、limit操作。
5.一种数据库执行计划的优化装置,其特征在于,所述装置包括:
原始生成单元,根据数据库查询语句生成原始执行计划;
条件判断单元,判断所述原始执行计划是否满足预设的晚期物化条件;
时机确定单元,若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;
目标生成单元,基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;
计划执行单元,若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询;
所述时机确定单元,将所述原始执行计划中需要进行数据操作的属性的物化时机确定为早期物化;将所述原始执行计划中无需进行数据操作的属性的物化时机确定为晚期物化。
6.根据权利要求5所述的装置,其特征在于,
所述目标生成单元,基于早期物化的属性生成目标执行计划的左子树,并在所述左子树中增加行ID的输出;基于晚期物化的属性生成目标执行计划的右子树,并在所述右子树中增加行ID的约束条件,所述行ID的约束条件是行ID等于所述左子树输出的行ID。
7.根据权利要求5所述的装置,其特征在于,所述晚期物化条件包括:
针对单表查询;
存在筛选条件;
存在物化后的数据操作;以及
存在仅执行物化但无需数据操作的属性。
8.根据权利要求7所述的装置,其特征在于,
所述物化后的数据操作包括:sort操作、limit操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710074396.8/1.html,转载请声明来源钻瓜专利网。