1 .一种数据库查询的处理方法,包括:
获取查询语句,并对所述查询预计进行解析,以得到所述查询语句的查询树;
对所述查询树涉及的表进行遍历,以得到所述涉及的表上预先生成的聚合索引;
使用所述聚合索引的查询子树替换所述查询树上与所述查询子树相匹配的匹配子树,
从而得到优化查询树;
根据所述优化查询树生成所述查询语句的执行计划。
2.根据权利要求1所述的数据库查询的处理方法,其中,使用所述聚合索引的查询子树
替换所述查询树上与所述查询子树相匹配的匹配子树的步骤包括:
将遍历得到全部所述聚合索引分别编译成聚合索引子树;
在所述查询树上查询与所述聚合索引子树相匹配的匹配子树;
使用所述聚合索引子树替换所述匹配的子树。
3 .根据权利要求2所述的数据库查询的处理方法,其中,所述在所述查询树上查询与所
述聚合索引子树相匹配的匹配子树的步骤包括:
再次遍历所述查询树,查找与所述查询子树相同的子树以及子查询包含所述聚合索引
子树查询条件的子树,作为所述匹配子树。
4 .根据权利要求1所述的数据库查询的处理方法,其中,根据所述优化查询树生成所述
查询语句的执行计划的步骤包括:
由所述数据库的优化器对所述优化查询树进行代价评估;
基于代价评估的结果从所述所述优化查询树中挑选所述执行计划。
5 .根据权利要求1所述的数据库查询的处理方法,其中,在所述根据所述优化查询树生
成所述查询语句的执行计划的步骤之后还包括:
由所述数据库的执行器执行所述执行计划,在执行过程中处理所述聚合索引子树的过
程中,从对应的聚合索引中查询得出符合条件的索引键值及其聚合数据。
6 .根据权利要求5所述的数据库查询的处理方法,其中,从对应的聚合索引中查询得出
符合条件的索引键值及其聚合数据的步骤之后还包括:
判断所述聚合数据是否直接为所需的结果数据;
若否,对所述聚合数据进行二次计算,以得到所述结果数据。
7 .根据权利要求1所述的数据库查询的处理方法,其中,
在对所述查询树涉及的表进行遍历之后,如果所述涉及的表全部不具有聚合索引,则
由所述数据库的优化器直接根据所述查询树制定执行计划。
8.根据权利要求1所述的数据库查询的处理方法,其中,还包括:
获取触发所述数据库的聚合索引更新的数据操作,并按照所述数据操作对所述数据库
的目标数据表进行数据修改;
读取所述聚合索引预先定义的统计公式;
使用所述统计公式对修改的数据进行统计计算,得到统计信息;
使用所述统计信息更新所述聚合索引的聚合数据。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理
器执行时实现根据权利要求1至8任一项所述的数据库查询的处理方法。
10 .一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运
权 利 要 求 书
1/2 页
2
评论