面向数据库管理系统的计划树优化方法和装置的制造方法

文档序号:8339694阅读:567来源:国知局
面向数据库管理系统的计划树优化方法和装置的制造方法
【技术领域】
[0001] 本发明实施例涉及数据库管理技术,尤其涉及一种面向数据库管理系统的计划树 优化方法。
【背景技术】
[0002] 数据库管理系统根据用户输入的SQL (Structured Query Language,结构化查询 语言)语句生成对应的计划树。计划树是一个由各种执行操作符作为节点的树状结构,不 同的数据库管理系统可能包含不同的操作符,但都遵循数据库的基本原理,一条SQL语句 中所包含的视图和子查询块被处理为计划树中的一个子树,且这些子树通常以同一个操作 符作为根节点。计划树在很大程度上决定了一个数据库管理系统执行语句的效率,精简计 划树可以有效地提高数据库管理系统的性能。
[0003] 在现有技术中,数据库管理系统在执行与计划树对应的数据检索操作时都采用了 同样的技术,即流水线机制。所述流水线机制,是指系统每次调用一个执行节点,就从其下 的子节点获取一条记录或者一个空记录而叶节点则直接对数据库基表进行访问操作。
[0004] 现有技术的主要缺陷在于:在计划树中由若干节点构成的子树重复出现时,由于 这些子树返回的均是相同的记录数据,采用流水线机制时依旧需要逐条生成记录并在子树 中重复地传输相同的记录数据,这会造成极大的资源浪费。

【发明内容】

[0005] 有鉴于此,本发明实施例提供一种面向数据库管理系统的计划树优化方法和装 置,以减少相同的记录数据的生成、处理以及在流水线中的传输,有效地提高数据库管理系 统的性能。
[0006] 在第一方面,本发明实施例提供了一种面向数据库管理系统的计划树优化方法, 包括:
[0007] 根据计划树中的重复子树,生成以TTAB节点为根节点的TTAB子树,并获取所述 TTAB子树中TTAB节点的依赖关系;
[0008] 使用所述TTAB节点优化所述计划树中的重复子树,并建立与TTAB节点对应的 TTAB链表;
[0009] 根据所述TTAB节点的依赖关系,调整所述TTAB链表中TTAB节点的顺序。
[0010] 在第二方面,本发明实施例还提供了一种面向数据库管理系统的计划树优化装 置,包括:
[0011] TTAB子树生成模块,用于根据计划树中的重复子树,生成以TTAB节点为根节点的 TTAB子树,并获取所述TTAB子树中TTAB节点的依赖关系;
[0012] TTAB链表建立模块,用于使用所述TTAB节点优化所述计划树中的重复子树,并建 立与TTAB节点对应的TTAB链表;
[0013] TTAB节点顺序调整模块,用于根据所述TTAB节点的依赖关系,调整所述TTAB链表 中TTAB节点的顺序。
[0014] 本发明实施例通过根据计划树中的重复子树,生成以TTAB节点为根节点的TTAB 子树,并获取所述TTAB子树中TTAB节点的依赖关系;使用所述TTAB节点优化所述计划树 中的重复子树,并建立与TTAB节点对应的TTAB链表;根据所述TTAB节点的依赖关系,调整 所述TTAB链表中TTAB节点的顺序的技术手段,解决了现有的流水线机制需要逐条生成记 录并在子树中重复地传输相同的记录数据,因而造成极大资源浪费的技术问题,实现了有 效地精简了计划树,避免了相同子树的重复计算处理,提高了数据库管理系统的性能的技 术效果。
【附图说明】
[0015] 图1是本发明第一实施例的一种面向数据库管理系统的计划树优化方法的流程 图;
[0016] 图2是本发明第一实施例的一种计划树的结构示意图;
[0017] 图3是本发明第一实施例的一种TTAB子树的结构不意图;
[0018] 图4是本发明第一实施例的一种描述TTAB节点之间依赖关系的示意图;
[0019] 图5是本发明第一实施例的一种使用TTAB节点优化计划树的示意图;
[0020]图6是本发明第二实施例的一种面向数据库管理系统的计划树优化方法的流程 图;
[0021] 图7是本发明第二实施例的一种建立与TTAB节点对应的TTAB链表的实现示意 图;
[0022] 图8是本发明第三实施例的一种面向数据库管理系统的计划树优化方法的流程 图;
[0023] 图9是本发明第三实施例的一种TTAB链表调整顺序的示意图;
[0024] 图10是本发明第四实施例的一种面向数据库管理系统的计划树优化装置的结构 图。
【具体实施方式】
[0025] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实 施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明, 而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关 的部分而非全部内容。
[0026] 第一实施例
[0027] 图1是本发明第一实施例的一种面向数据库管理系统的计划树优化方法的流程 图,本实施例的方法可以由面向数据库管理系统的计划树优化装置来执行,该装置可通过 硬件和/或软件的方式实现,一般可集成于用于提供计划树优化服务的服务器中。本实施 例的方法具体包括如下操作:
[0028] 110、根据计划树中的重复子树,生成以TTAB(链表树)节点为根节点的TTAB子 树,并获取所述TTAB子树中TTAB节点的依赖关系。
[0029] 在本实施例中,服务器根据计划树中的重复子树,生成以TTAB节点为根节点的 TTAB子树,并获取所述TTAB子树中TTAB节点的依赖关系。
[0030] 在本实施例中,计划树是指根据用户输入的SQL语言生成的,由各种执行操作符 作为节点的树状结构。其中,在图2中示出了一种计划树的结构示意图。
[0031] 计划树中的重复子树,具体是指以所述计划树中的一个节点作为根节点的至少两 个相等树。所谓相等树具体是指所有对应节点上的属性均相等的子树。如图2所示,子树 21和子树22为所述计划树中的重复子树。
[0032] 在本实施例中,获取计划树中的全部重复子树后,为每一个重复子树增加一个 TTAB节点作为根节点,即可生成TTAB子树。换句话说,TTAB子树为根节点为TTAB节点的 一个子树;重复子树为根节点为P (计划树中的一个具体节点)的一个子树,在重复子树中 增加 TTAB节点的根节点就变成TTAB子树,反过来,TTAB子树去掉TTAB根节点就变回成一 个重复子树。
[0033] 在图2所示的计划树中,共有7个重复子树。其中,搜集重复子树的过程可以使用 各种已知算法和数据结构实现,不再赘述。对这7个重复子树加上不同的TTAB根节点,就 变为7个TTAB子树。在图3中示出了上述7个重复子树,及其对应的7个TTAB子树,其中 的Tn,n e [1,7]表示不同的TTAB根节点。
[0034] 在本实施例中,服务器在生成以TTAB节点为根节点的TTAB子树之后,还获取所述 TTAB子树中各个TTAB节点的依赖关系。
[0035] 其中,如果第一重复子树是第二重复子树的子树,那么表示第二重复子树的根节 点依赖第一重复子树的根节点。具体的,如图3所示,以T2为根节点的重复子树是以Tl 为根节点的重复子树的子树,则可确定Tl依赖于T2。其中,在图4中示出了计划树中各个 TTAB节点的依赖关系。
[0036] 120、使用所述TTAB节点优化所述计划树中的重复子树,并建立与TTAB节点对应 的TTAB链表。
[0037] 在本实施例中,服务器使用所述TTAB节点优化所述计划树中的重复子树,并建立 与TTAB节点对应的TTAB链表。
[0038] 其中,通过使用所述TTAB节点代替所述计划树中的重复子树,可以实现对所述计 划树中的重复子树的优化。在图5中示出了一种使用TTAB节点代替所述计划树中的重复 子树。
[0039] 在本实施例中,在使用所述TTAB节点优化所述计划树中的重复子树的同时,还要 建立与TTAB节点对应的TTAB链表。所述TTAB链表中存储有各个TTAB节点。
[0040] 其中,所述TTAB链表可以在使用TTAB节点优化计划树的同时,同步建立,也可以 在用TTAB节点优化计划树之后,根据优化后的计划树中包括的TTAB节点建立,对此并不进 行限制。
[0041] 130、根据所述TTAB节点的依赖关系,调整所述TTAB链表中TTAB节点的顺序。
[0042] 在本实施例中,服务器根据所述TTAB节点的依赖关系,调整所述TTAB链表中TTAB 节点的顺序。
[0043] 其中,TTAB链表中TTAB节点顺序的调整为了保证一个TTAB节点所依赖的全部 TTAB节点排在该TTAB节点之前。这样设置的原因是:保证了在计划树的执行过程中,被依 赖的TTAB节点的计算被优先处理,确保了计划树的顺利执行。
[0044] 本发明实施例通过根据计划树中的重复子树,生成以TTAB节点为根节点的TTAB 子树,并获取所述TTAB子树中TTAB节点的依赖关系;使用所述TTAB节点优化所述计划树 中的重复子树,并建立与TTAB节点对应的TTAB链表;根据所述TTAB节点的依赖关系,调整 所述TTAB链表
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1