1 .一种多模数据库的查询优化方法,其特征在于,包括如下步骤:
树构建:对于用户输入的查询语句,以表达式为节点、通过数据库查询优化器为查询语
句的执行生成树结构的执行计划树;
树重构:遍历执行计划树、基于预先构建的下推白名单查找到能够下推到时序引擎的
最大树作为目标树,并基于目标树重构执行计划、得到重构的执行计划树,其中,下推白名
单中记录有时序引擎能够执行的所有表达式;
查询执行:通过时序引擎执行重构的执行计划树。
2 .根据权利要求1所述的多模数据库的查询优化方法,其特征在于,自上至下遍历执行
计划树,对于执行计划树的每一层,判断当前层表达式是否存在于预先构建的下推白名单
中,如果是,判断当前层对应孩子层表达式是否存在于下推白名单中,如果是,将当前层标
记为当前能够下推的最大执行计划树,并检查上一层表达式是否存在于下推名单中,如果
是,更新当前能够下推到时序引擎的最大执行计划树,直至查找到不能下推的层作为终止
层,将终止层的孩子层对应的树作为最大执行计划树。
3 .根据权利要求1或2所述的多模数据库的查询优化方法,其特征在于,下推白名单中
每一行代表一个表达式,记录有表达式的可下推操作、参数参量、参数类型以及可下推位
置,对于每个表达式,所述表达式对应可下推操作、参数参量以及参数类型的哈希编码作为
key值存储于map中,所述表达式对应可下推位置作为value值存储于map中。
4 .根据权利要求3所述的多模数据库的查询优化方法,其特征在于,判断当前层或孩子
层表达式是否存在于下推白名单时,计算表达式对应可下推操作、参数参量以及参数类型
的哈希编码作为key值,从下推白名单的map中查找是否存在对应的key值,如果得到的key
值不存在于map中,判定表达式不存在于可下推白名单中,如果得到的key值存在于map中,
判断表达式对应的可下推位置是否存在于map中,如果表达式对应的可下推位置存在于map
中,判定表达式存在于可下推白名单中,如果表达式对应的可下推位置不存在于map中,判
定表达式不存在于可下推白名单中。
5 .一种多模数据库的查询优化系统,其特征在于,用于通过如权利要求1‑4任一项所述
的一种多模数据库的查询优化方法实现多模数据库的查询优化,所述系统包括树构建模
块、树重构模块以及查询执行模块;
所述树构建模块用于执行如下:对于用户输入的查询语句,以表达式为节点、通过数据
库查询优化器为查询语句的执行生成树结构的执行计划树;
所述树重构模块用于执行如下:遍历执行计划树、基于预先构建的下推白名单查找到
能够下推到时序引擎的最大树作为目标树,并基于目标树重构执行计划、得到重构的执行
计划树,其中,下推白名单中记录有时序引擎能够执行的所有表达式;
所述查询执行模块用于执行如下:通过时序引擎执行重构的执行计划树。
6 .根据权利要求5所述的多模数据库的查询优化系统,其特征在于,所述树重构模块用
于执行如下:自上至下遍历执行计划树,对于执行计划树的每一层,判断当前层表达式是否
存在于预先构建的下推白名单中,如果是,判断当前层对应孩子层表达式是否存在于下推
白名单中,如果是,将当前层标记为当前能够下推的最大执行计划树,并检查上一层表达式
是否存在于下推名单中,如果是,更新当前能够下推到时序引擎的最大执行计划树,直至查
找到不能下推的层作为终止层,将终止层的孩子层对应的树作为最大执行计划树。
权 利 要 求 书
1/2 页
2
相关文档
评论