The present application provides an optimization method and apparatus for a database execution plan. The method comprises: according to generate the original database query execution plan; judging whether the original plan meets the advanced physicochemical conditions of presupposition; if the original plan to meet the advanced physicochemical conditions, according to the attributes of the original execution plan according to the number of time determined by the attribute operation information, including the materialized time: early materialization and late materialization; the left sub attributes to generate early goals materialized execution plan tree based on attribute generation target late materialization plan based on the right subtree, the left subtree and the right subtree by ID connection; if the target of the execution plan execution cost is less than the original plan execution cost, based on the target to achieve the database query execution plan. This application can reduce the execution cost of database query and improve the query performance of database.
【技术实现步骤摘要】
数据库执行计划的优化方法和装置
本申请涉及数据库
,尤其涉及一种数据库执行计划的优化方法和装置。
技术介绍
数据库物化一般是指从底层存储中获取数据的时候进行的投影操作,通过数据库物化可以减少对底层存储的访问,加快访问速率。目前,针对行存结构的数据库,通常需要在开始访问的时候就物化出所有需要的属性,大量的属性物化会降低系统的性能、浪费系统的资源。
技术实现思路
有鉴于此,本申请提供一种数据库执行计划的优化方法和装置。具体地,本申请是通过如下技术方案实现的:一种数据库执行计划的优化方法,所述方法包括:根据数据库查询语句生成原始执行计划;判断所述原始执行计划是否满足预设的晚期物化条件;若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询。一种数据库执 ...
【技术保护点】
一种数据库执行计划的优化方法,其特征在于,所述方法包括:根据数据库查询语句生成原始执行计划;判断所述原始执行计划是否满足预设的晚期物化条件;若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询。
【技术特征摘要】
1.一种数据库执行计划的优化方法,其特征在于,所述方法包括:根据数据库查询语句生成原始执行计划;判断所述原始执行计划是否满足预设的晚期物化条件;若所述原始执行计划满足所述晚期物化条件,则根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,所述物化时机包括:早期物化和晚期物化;基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,所述左子树和所述右子树通过行ID实现内连接;若所述目标执行计划的执行代价小于所述原始执行计划的执行代价,则基于所述目标执行计划实现本次数据库查询。2.根据权利要求1所述的方法,其特征在于,所述根据所述原始执行计划中属性的数据操作信息确定所述属性的物化时机,包括:将所述原始执行计划中需要进行数据操作的属性的物化时机确定为早期物化;将所述原始执行计划中无需进行数据操作的属性的物化时机确定为晚期物化。3.根据权利要求1所述的方法,其特征在于,所述基于早期物化的属性生成目标执行计划的左子树,基于晚期物化的属性生成目标执行计划的右子树,包括:基于早期物化的属性生成目标执行计划的左子树,并在所述左子树中增加行ID的输出;基于晚期物化的属性生成目标执行计划的右子树,并在所述右子树中增加行ID的约束条件,所述行ID的约束条件是行ID等于所述左子树输出的行ID。4.根据权利要求1所述的方法,其特征在于,所述晚期物化条件包括:针对单表查询;存在筛选条件;存在物化后的数据操作;以及存在仅执行物化但无需数据操作的属性。5.根据权利要求4所述的方法,其特征在于,所述物化后的数据操作包括...
【专利技术属性】
技术研发人员:李阳,蒋志勇,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。