[发明专利]一种基于等价类的数据库内核查询优化方法有效
申请号: | 201310681482.7 | 申请日: | 2013-12-12 |
公开(公告)号: | CN103678589B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 宋晓眉 | 申请(专利权)人: | 用友网络科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京中恒高博知识产权代理有限公司11249 | 代理人: | 刘洪京 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明适用软件领域,提供了一种基于等价类的数据库内核查询优化方法,所述方法包括在查询语句进入子查询优化器之后,使用函数处理sql语句中关键词from之后以及关键词where之前的描述处理显式连接的嵌套树结构或者一个没有指定连接方式的链表,提取表信息,获取表对象,初始化其包含的Col和Eclass位变量,填充链表RELS;处理sql语句中on之后和where之后的限制条件链表quals,依据Eclass位变量对限制条件进行传递;进入枚举器,依据Eclass位变量扩大计划搜索空间,枚举出更多的等价计划,进入代价计算器计算代价;获取最小代价的计划作为最终的执行计划,执行计划被编译成执行树,被传送到执行器中执行。本发明具有性能高的优点。 | ||
搜索关键词: | 一种 基于 等价 数据库 内核 查询 优化 方法 | ||
【主权项】:
一种基于等价类的数据库内核查询优化方法,其特征在于,所述方法包括:在触发查询优化后,进入子查询优化器之后,使用函数处理sql语句中关键词from之后以及关键词where之前的描述:进入显式连接的嵌套树结构或者是一个没有指定连接方式的链表,提取表信息,获取表对象,初始化表对象包含的Col位变量和Eclass位变量,填充链表RELS;处理sql语句中on之后的限制条件链表quals,所述处理sql语句中on之后的限制条件链表quals具体包括:获取列对象COL,初始化其包含的Rel位变量和Eclass位变量;Rel根据已有的表对象REL赋值,根据COL生成一个等价类对象EC,Rel根据该EC生成为其包含的Eclass位变量赋值,最终COL填充COLS链表;同时,该生成的等价类对象根据已有的RELS和COLS为其Rel和Col位变量赋值,所述生成的等价类对象根据已有的RELS和COLS为其Rel和Col位变量赋值包括:寻找inner连接的有效等值连接;如果存在有效的等值连接,应该检查链表ECS看看涉及到的两个等价类是否单独存在,如是,则将这两个等价类合并到一个等价类中,另一个等价类将被剔除,同时要修改REL和COL中的Eclass位变量;处理sql语句中where之后的描述;遍历DISTINCT、ORDER BY、GROUP BY属于列特性的链表,根据Eclass位变量找到其对应的等价类,将这些特性上升为整个等价类的特性;等价类将这些特性传递到它的每一个成员中;对等价类的每个成员添加这些特性可以为后面的优化操作使用;遍历sql中的quals链表,对每一个单目的qual找到对应的列,根据表对象REL的Eclass位变量找到对应的唯一一个等价类,根据这个等价类的Col位变量找到其他的列,将单目约束条件qual传送到这些列成员之中;进入枚举器,每当产生一对输入条件,判断一对输入条件在等价类中是否存在,如存在,进入代价计算器;获取最小代价的计划作为最终的执行计划,执行计划被编译成执行树,被传送到执行器中执行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友网络科技股份有限公司,未经用友网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310681482.7/,转载请声明来源钻瓜专利网。
- 上一篇:有机磷检测系统和方法
- 下一篇:一种行道树生态景观监测系统和方法