[发明专利]数据库执行计划的优化方法和装置有效
申请号: | 201710074396.8 | 申请日: | 2017-02-10 |
公开(公告)号: | CN106991116B | 公开(公告)日: | 2020-04-14 |
发明(设计)人: | 李阳;蒋志勇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/26 | 分类号: | G06F16/26 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥;王剑 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 执行 计划 优化 方法 装置 | ||
本申请提供一种数据库执行计划的优化方法和装置。所述方法包括:根据数据库查询语句生成原始执行计划;判断所述原始执行计划是否满足预设的晚期物化条件;若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询。本申请可减少数据库查询的执行代价,提高数据库的查询性能。
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库执行计划的优化方法和装置。
背景技术
数据库物化一般是指从底层存储中获取数据的时候进行的投影操作,通过数据库物化可以减少对底层存储的访问,加快访问速率。目前,针对行存结构的数据库,通常需要在开始访问的时候就物化出所有需要的属性,大量的属性物化会降低系统的性能、浪费系统的资源。
发明内容
有鉴于此,本申请提供一种数据库执行计划的优化方法和装置。
具体地,本申请是通过如下技术方案实现的:
一种数据库执行计划的优化方法,所述方法包括:
根据数据库查询语句生成原始执行计划;
判断所述原始执行计划是否满足预设的晚期物化条件;
若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;
基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;
若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询。
一种数据库执行计划的优化装置,所述装置包括:
原始生成单元,根据数据库查询语句生成原始执行计划;
条件判断单元,判断所述原始执行计划是否满足预设的晚期物化条件;
时机确定单元,若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;
目标生成单元,基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;
计划执行单元,若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询。
由以上描述可以看出,本申请数据库内核可以在原始执行计划满足晚期物化条件时,基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,后续可在目标执行计划的执行代价小于原始执行计划的执行代价时,基于目标执行计划实现本次数据库查询,从而减少执行代价,提高数据库的查询性能。同时,本申请通过数据库内核即可实现上述优化方案,对于应用层而言完全透明,无需人工改写,节省了大量人力成本。
附图说明
图1是本申请一示例性实施例示出的一种数据库执行计划的优化方法的流程示意图。
图2是本申请一示例性实施例示出的一种原始执行计划示意图。
图3是本申请一示例性实施例示出的另一种原始执行计划示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710074396.8/2.html,转载请声明来源钻瓜专利网。