1 .一种数据库的查询优化方法,包括:
获取查询语句的原始代数表达式;
利用预先配置的初始逻辑优化规则对所述原始代数表达式进行等价变换,得到第一等
价表达式;
获取所述第一等价表达式的最优执行路径和对应的最小代价,记为最佳路径和基准代
价;
判断是否达到结束查询优化的预设条件,若达到预设条件,利用所述最佳路径执行所
述查询语句;
若未达到预设条件,从预先配置的规则数组中选取逻辑优化规则,所述规则数组中配
置有多个逻辑优化规则;
获取经所述逻辑优化规则变换后的代数表达式对应的最优执行路径和对应的最小代
价,记为评估路径和评估代价;
比较所述评估代价和所述基准代价;
若所述评估代价小于所述基准代价,更新所述最佳路径为所述评估路径,更新所述基
准代价为所述评估代价;
返回所述判断是否达到结束查询优化的预设条件的步骤。
2.根据权利要求1所述的数据库的查询优化方法,其中,所述获取经所述逻辑优化规则
变换后的代数表达式对应的最优执行路径和对应的最小代价的步骤包括:
获取待变换表达式,所述待变换表达式赋值为所述第一等价表达式;
利用所述逻辑优化规则对所述待变换表达式进行等价变换,变换后的代数表达式记为
第二等价表达式;
获取所述第二等价表达式的最优执行路径和对应的最小代价。
3 .根据权利要求2所述的数据库的查询优化方法,其中,所述比较所述评估代价和所述
基准代价的步骤之后包括:
若所述评估代价小于所述基准代价,更新所述待变换表达式为所述第二等价表达式。
4 .根据权利要求1所述的数据库的查询优化方法,其中,所述判断是否达到结束查询优
化的预设条件的步骤包括:
判断所述规则数组中的所有逻辑优化规则是否都已选取过,若是,则判定达到所述预
设条件,若否,则判定未达到所述预设条件。
5 .根据权利要求4所述的数据库的查询优化方法,其中,在所述判断所述规则数组中的
所有逻辑优化规则是否都已选取过的步骤之前包括:
判断优化时间是否达到预设阈值,若是,则判定达到所述预设条件,若否,执行所述判
断所述规则数组中的所有逻辑优化规则是否都已选取过的步骤;
其中,所述优化时间为所述获取所述第一等价表达式的最优执行路径和对应的最小代
价的开始时刻到当前时刻的时间间隔。
6 .根据权利要求1所述的数据库的查询优化方法,其中,所述获取所述第一等价表达式
的最优执行路径和对应的最小代价的步骤包括:
对所述第一等价表达式进行复制;
对复制后的所述第一等价表达式进行物理优化,得到最优的执行路径和对应的最小代
权 利 要 求 书
1/2 页
2
评论