一种在数据库系统中动态整合执行结构的方法和装置制造方法及图纸

技术编号:7935451 阅读:220 留言:0更新日期:2012-11-01 05:13
本发明专利技术的各实施方式涉及一种在数据库系统中动态整合执行结构的方法和装置。在一个实施方式中,提供了一种在数据库系统中动态整合执行结构的方法,该方法包括:响应于对所述数据库系统进行查询,提取查询语句的主干和分支;从所述数据库系统的高速缓存获得所述主干的执行结构;生成所述分支的执行结构;以及将所述主干的执行结构与所述分支的执行结构整合为运行时执行结构;其中所述分支包含所述查询语句的至少一部分查询条件。在另一实施方式中,提供了一种在数据库系统中动态整合执行结构装置。

【技术实现步骤摘要】

本专利技术的各实施方式涉及数据库管理,并且更具体地,涉及ー种在数据库系统中动态整合执行结构的方法、装置和相关计算机程序产品。
技术介绍
数据库技术的发展提供了越来越大的数据存储能力,用户可以通过网络等方式对海量数据存储进行查询并获得所需的数据。在执行数据库查询时,当接收到来自客户端的查询语句(例如,以结构化查询语言SQL表示)时,需要对该查询语句进行语法分析、预编译、优化等步骤,继而生成执行结构。概括而言,执行结构是在执行查询时的“可执行”数据, 查询语句最終将被转换为执行结构才能实现查询。因此生成执行结构的速度成为影响数据库的查询性能的一个关键因素。为了提高查询性能而开发了专用于数据库管理系统的高速缓存,在数据库系统运行过程中,将以往的查询语句以及从这些查询语句生成的执行结构进行高速缓存。在后续查询中,如果发现当前的查询语句与先前高速缓存的查询语句相同(例如通过字符匹配方式判断两者是否相同),则可以直接获取相应的执行结构。这种高速缓存技术在很大程度上提高了数据查询效率。然而,随着动态SQL的出现,查询对象和查询条件愈发多样化,造成高速缓存的命中率降低,因而针对新的查询语句只能重新进行语法分析、预编译、优化等步骤,继而生成相应执行结构。在判断来自用户的查询是否命中高速缓存时,现有解决方案只能基于查询语句中的字符串匹配等简单的文本匹配方式判断是否命中。尽管目前已经出现了可以将查询语句的数字等常数值替换为通配符的技术,然而当查询语句中増加了新的查询条件或者包括函数等需要附加计算的公式时,只能针对查询生成新的执行结构。目前高速缓存中的执行结构是静态存储的,在出现高速缓存命中时,该执行结构被整体调用。而在高速缓存更新吋,将基于特定策略,将ー个执行结构整体地保留在高速缓存中,或者将其完全清除。目前并不存在动态调整已有执行结构以适应于新的查询语句的动态方法。另ー方面,高速缓存中可能会存储大量相似的查询语句(例如,查询语句的大部分内容相同,仅有部分查询条件不同),此时这种相似的查询语句对应的执行结构中将存在众多重复数据。可以认为这些重复数据是“冗余数据”,冗余数据占用了宝贵的高速缓存的存储空间。
技术实现思路
因此,在期望尽量重用现有的数据库管理系统的前提下,如何重用高速缓存中的执行结构进而加快数据查询的响应速度,这已经成为ー项亟待解决的问题。此外,还期望提供一种降低高速缓存中的冗余数据并提高高速缓存有效使用率的方法。为此,本专利技术的各实施方式提供了在数据库系统中动态整合执行结构的方法、装置和相关计算机程序产品。在一个实施方式中,提供了ー种在数据库系统中动态整合执行结构的方法。该方法包括响应于对数据库系统进行查询,提取查询语句的主干和分支;从数据库系统的高速缓存获得主干的执行结构;生成分支的执行结构;以及将主干的执行结构与分支的执行结构整合为运行时执行结构;其中分支包含查询语句的至少一部分查询条件。在另ー实施方式中,至少一部分查询条件独立于高速缓存。在另ー实施方式中,查询条件包括以下至少ー类查询语句中的常量谓词(predicate)以及查询语句中的附加谓词。 在一个实施方式中,提供了ー种在数据库系统中动态整合执行结构的装置。该装置包括提取装置,被配置用于响应于对数据库系统进行查询,提取查询语句的主干和分支;获得装置,被配置用于从数据库系统的高速缓存获得主干的执行结构;生成装置,被配置用于生成分支的执行结构;以及整合装置,被配置用于将主干的执行结构与分支的执行结构整合为运行时执行结构;其中分支包含查询语句的至少一部分查询条件。在另ー实施方式中,至少一部分查询条件独立于高速缓存。在另ー实施方式中,查询条件包括以下至少ー类查询语句中的常量谓词以及查询语句中的附加谓词。采用本专利技术的各实施方式,可以提高高速缓存的使用效率,降低高速缓存中数据的冗余度,并且加快查询操作的响应速度。附图说明结合附图并參考以下详细说明,本专利技术各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本专利技术的若干实施方式。在附图中图I示意性示出了根据ー个解决方案的在数据库系统中利用高速缓存的执行结构的方法的示意图;图2示意性示出了根据本专利技术一个实施方式的方法的高层流程图;图3示意性示出了根据本专利技术一个实施方式的方法的详细流程图;图4示意性示出了根据本专利技术一个实施方式的高速缓存的结构示意图;图5A和图5B分别示意性示出了查询语句I的执行结构的示意图,其中图5A表示现有执行结构,图5B表示根据本专利技术一个实施方式的动态整合后的执行结构;图6A和图6B分别示意性示出了查询语句2的执行结构的示意图,其中图6A表示现有执行结构,图6B表示根据本专利技术一个实施方式的动态整合后的执行结构;图7A和图7B分别示意性示出了查询语句3的执行结构的示意图,其中图7A表示现有执行结构,图7B表示根据本专利技术一个实施方式的动态整合后的执行结构;以及图8示意性示出了根据本专利技术一个实施方式的装置的架构图。具体实施例方式下面參考附图详细描述本专利技术的各实施方式。附图中的流程图和框图,图示了按照本专利技术各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。在本专利技术的一个实施方式中,对执行结构进行动态整合。通过寻找当前查询语句与高速缓存中的执行结构所对应的各查询语句之间的关联,来尽可能地重用高速缓存中的执行结构,以便提高查询效率。下面将參考若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。图I示意性示出了根据ー个解决方案的在数据库系统中利用高速缓存的执行结构的方法的示意图100。如图I所示,为加快用户查询数据库时的响应速度,可以在服务器 130中设置高速缓存134。当用户在客户端110处例如通过网络120访问数据存储140吋,服务器130中的判断装置132首先判断在高速缓存134中是否存储有与来自用户的查询语句相匹配的执行结构,也即判断来自用户的查询是否命中高速缓存134。在此解决方案中,如果命中,则可以直接调用高速缓存134中的执行结构进行查询;否则,需要对该查询语句生成相应执行结构。为方便下文描述,首先在表I中示出几个以SQL表示的查询语句的示例。表I查询语句的示例序号名称查询语句_ _ 1查询语句 O SELECT COLI FROM TB IWHERE COLK25 AND C0L2='CAT' __AND COL3-'2Ql 1-01-01' 查询语句 I SELECT COLl FROM TBl W本文档来自技高网
...

【技术保护点】
一种在数据库系统中动态整合执行结构的方法,包括:响应于对所述数据库系统进行查询,提取查询语句的主干和分支;从所述数据库系统的高速缓存获得所述主干的执行结构;生成所述分支的执行结构;以及将所述主干的执行结构与所述分支的执行结构整合为运行时执行结构;其中所述分支包含所述查询语句的至少一部分查询条件。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨新颖周祥魏可伟
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1