用于数据查询的方法和系统.pdf

上传人:e2 文档编号:267053 上传时间:2018-02-06 格式:PDF 页数:19 大小:2.53MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310211748.1

申请日:

2013.05.31

公开号:

CN104216894A

公开日:

2014.12.17

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130531|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

国际商业机器公司

发明人:

王晨; 周瓒; 张广舟; 刘晶晶; 邱雷; 徐福飞; 赵胜

地址:

美国纽约阿芒克

优先权:

专利代理机构:

北京市金杜律师事务所 11256

代理人:

酆迅;李峥宇

PDF下载: PDF下载
内容摘要

本发明公开了一种用于数据查询的方法和系统。所述方法包括:接收查询请求,所述查询请求包括查询语句;计算所述查询语句中关键组成元素的特征值;基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。本发明的方法和系统有利于提高执行计划的重用程度,进而提高生成查询语句的执行计划的效率以及数据库管理系统在性能上的稳定性。

权利要求书

1.  一种用于数据查询的方法,包括:
接收查询请求,所述查询请求包括查询语句;
计算所述查询语句中关键组成元素的特征值;
基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;
响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。

2.
  根据权利要求1所述的方法,所述方法还包括以下至少之一:
基于数据库管理系统中的所有表建立全局表集合序列;
基于所有表的对应列建立全局列集合序列;
对数据库管理系统中的所有谓词建立对应的谓词bitmap编码。

3.
  根据权利要求2所述的方法,其中所述计算所述查询语句中关键组成元素的特征值包括:
根据所述全局表集合序列、所述全局列集合序列和所述谓词bitmap编码中至少之一计算所述查询语句对应的表bitmap特征值、列bitmap特征值和谓词bitmap特征值中至少之一,其中所述关键组成元素包括以下至少之一:表、列、谓词。

4.
  根据权利要求2所述的方法,所述方法还包括:
对历史查询语句的执行计划的至少一个节点增加以下至少之一的bitmap属性:表bitmap属性、列bitmap属性、谓词bitmap属性。

5.
  根据权利要求4所述的方法,所述方法还包括:
基于所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的对应的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值中的至少之一。

6.
  根据权利要求5所述的方法,其中所述基于所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的对应的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值中的至少之一还包括:
根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词bitmap编码中对应的至少之一计算所述执行计划的至少一个节点的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值。

7.
  根据权利要求1所述的方法,其中所述基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值包括以下至少之一:精确匹配、子集匹配、超集匹配和模糊匹配。

8.
  根据权利要求1所述的方法,其中所述基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值包括:
将所述关键组成元素的特征值和所述执行计划中节点的对应特征值取与;
响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。

9.
  根据权利要求1所述的方法,其中所述基于所述节点对应的执行计划,生成所述查询语句的执行计划包括:
将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分。

10.
  根据权利要求1所述的方法,其中所述历史查询语句的执行计划是已经优化的执行计划。

11.
  根据权利要求1所述的方法,其中所述查询语句是结构化查询语句(SQL)。

12.
  一种用于数据查询的系统,包括:
接收装置,被配置用于接收查询请求,所述查询请求包括查询语句;
计算装置,被配置用于计算所述查询语句中关键组成元素的特征值;
匹配装置,被配置用于基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;
执行计划生成装置,被配置用于响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。

13.
  根据权利要求12所述的系统,所述系统还包括以下至少之一:
全局表集合序列建立装置,被配置用于基于数据库管理系统中的所有表建立全局表集合序列;
全局列集合序列建立装置,被配置用于基于所有表的对应列建立全局列集合序列;
谓词bitmap编码建立装置,被配置用于对数据库管理系统中的所有谓词建立对应的谓词bitmap编码。

14.
  根据权利要求13所述的系统,其中所述计算所述查询语句中关键组成元素的特征值包括:
根据所述全局表集合序列、所述全局列集合序列和所述谓词bitmap编码中至少之一计算所述查询语句对应的表bitmap特征值、列bitmap特征值和谓词bitmap特征值中至少之一,其中所述关键组成元素包括以下至少之一:表、列、谓词。

15.
  根据权利要求13所述的系统,所述系统还包括:
bitmap属性增加装置,被配置用于对历史查询语句的执行计划的至少一个节点增加以下至少之一的bitmap属性:表bitmap属性、列bitmap属性、谓词bitmap属性。

16.
  根据权利要求4所述的系统,所述系统还包括:
bitmap属性特征值计算装置,被配置用于基于所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的对应的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值中的至少之一。

17.
  根据权利要求16所述的系统,其中所述bitmap属性特征值计算装置还包括:
用于根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词bitmap编码中对应的至少之一计算所述执行计划的至少一个节点的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值的装置。

18.
  根据权利要求12所述的系统,其中所述基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值包括以下至少之一:精确匹配、子集匹配、超集匹配和模糊匹配。

19.
  根据权利要求12所述的系统,其中所述匹配装置包括:
取与装置,被配置用于将所述关键组成元素的特征值和所述执行计划中节点的对应特征值取与;
确定匹配装置,被配置用于响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。

20.
  根据权利要求12所述的系统,其中所述执行计划生成装置包括:
用于将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分的装置。

21.
  根据权利要求12所述的系统,其中所述历史查询语句的执行计划是已经优化的执行计划。

22.
  根据权利要求12所述的系统,其中所述查询语句是结构化查询语句。

说明书

用于数据查询的方法和系统
技术领域
本发明涉及数据处理技术,更具体地涉及一种用于数据查询方法和系统。
背景技术
数据库管理系统在处理用户的查询请求时,对于如何执行该查询,存在多种执行路径。但有些执行路径所花费的成本(比如查询时间)会较高,有些执行路径则会较低。因此一般事先需要对查询的执行路径进行优化。例如,当前业内的主流数据库管理系统中所使用的查询优化器,主要是使用“基于规则”和“基于代价”的两种优化方法来优化SQL语句,并生成相对较优的查询计划。但是在某些情况下,优化器的全自动优化过程可能产生性能无法接受的执行计划。例如:
1)数据库管理系统已经针对了之前的典型应用(常用结构化查询语言SQL语句)进行了调优。但对于新的SQL语句,原有的调优参数可能并不适用,这样优化器可能产生效率很差的执行路径。
2)实际应用系统中,SQL查询语句往往非常长并且非常复杂。优化器的算法的由于其局限性无法生成较优执行计划,而且对这些SQL语句的优化和编译往往耗费系统较长的时间。
在一个经过调优的数据库系统中,对于新进入的SQL语句,我们应当尽可能的复用之前优化过的查询计划,来减少编译和优化SQL语句所使用的时间。目前在主流商用数据库管理系统中,广泛使用的查询计划复用方法普遍存在以下一些缺点:
1)查询计划是以整体为单位进行复用的,无法对执行计划进行更细粒度的分割,这导致复用效率低下。
2)查询计划复用时,往往简单的采用SQL语句文本匹配的方式进行匹配和复用。匹配效率低下。
因此需要一种能够以较高效率的生成可用的执行计划的数据查询方法。
发明内容
本发明提供一种用于数据查询的方法及其系统。
根据本发明的一个方面,提供了一种用于数据查询的方法,包括:接收查询请求,所述查询请求包括查询语句;计算所述查询语句中关键组成元素的特征值;基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。
根据本发明的另一个方面,提供了一种用于数据查询的系统,包括:接收装置,被配置用于接收查询请求,所述查询请求包括查询语句;计算装置,被配置用于计算所述查询语句中关键组成元素的特征值;匹配装置,被配置用于基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;执行计划生成装置,被配置用于响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。
采用本发明的一个具体实施方式的Bitmap匹配算法较之之前的字符串比较算法大幅度提高了查询速度。另一方面本发明的方法和系统有利于提高执行计划的重用程度,进而提高生成查询语句的执行计划的效率以及数据库管理系统在性能上的稳定性。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示出了本发明用于数据查询的方法的第一具体实施方式
图3示出了如何具体确定一个查询语句的关键组成元素的特征值。
图4示出了本发明用于确定执行计划的节点的bitmap特征值的具体实施方式
图5示出了本发明用于数据查询的一个具体实例。
图6示出了本发明用于数据查询的系统的框架示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结 合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的 程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者 多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参看图2,图2示出了本发明用于数据查询的方法的第一具体实施方式。在步骤201中,接收查询请求,所述查询请求包括查询语句。优选地,所述查询语句是结构化查询语句。一个查询语句的示例如:select*from T1,T2where T1.C1=T2.C2。在步骤203中,计算所述查询语句中关键组成元素的特征值。一般而言,查询语句中的关键组成元素重要的主要是表、列,以及对所述表和列进行操作的谓词,当然本领域技术人员根据实际需要,也可以确定查询语句中的其它组成元素作为关键组成元素,例如聚集操作,排序操作,去重操作等所涉及的相关集合等。可用采用统一的特定编码方法,将查询语句中涉及的各个关键组成元素赋予全局唯一值,从而获得了所述查询语句中关键组成元素的特征值。优选地,该特定编码方法可以采用bitmap编码法,所述bitmap编码法就是用一个bit(比特)位来标记某个元素对于的值,关于bitmap编码 法的具体介绍,可以进一步参考http://en.wikipedia.org/wiki/Bit-array维基百科。bitmap是一种非常适合本专利提出的细粒度查询执行计划的数据结构,它具有以下特征:a)它可以使用统一的方式表示基本元素以及元素的组合;b)具有良好的可扩展性;c)良好的支持比较、组合和拆分操作;d)具有压缩存储格式以节省存储空间。而对于如何用bitmap编码表示查询语言的关键组成元素的bitmap特征值则在下文中进行详细介绍。当然,本领域技术人员明了,基于本申请可以采用任何适用的编码方法,而本申请的下文将主要基于bitmap编码法介绍本发明。在步骤205中,基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值。一般而言,数据库管理系统中都会存储有调优的历史查询语句的执行计划,现有的执行计划都是以树结构的形式进行存储,其中根节点和各个节点一般为谓词,而叶子节点则为谓词操作对象,一般为表或者表的列。本领域技术人员了解,执行计划的节点对应的执行计划是指由该节点及其该节点的所有子节点、所有叶子节点所组成的执行计划,比如,一个执行计划中的根节点对应的执行计划是指整个执行计划,而对于其它子节点对应的执行计划是指该子节点及其该子节点的所有子节点、所有叶子节点所组成的执行计划。优选地,预先可以根据这些优化的执行计划的节点及其子节点和叶子节点所涉及的表、列或谓词操作基于bitmap编码法生成各个节点的特征值。节点的bitmap特征值的优选具体产生方法将在后面进行更为详细的说明。在步骤207中,响应于匹配到对应所述相关节点的特征值,基于所述相关节点对应的执行计划,生成所述查询语句的执行计划。优选地,将所述相关节点对应的执行计划作为所述查询语句的执行计划的至少一部分。优选地,在上述匹配过程中,一般从执行计划的根节点开始进行匹配,可以使用精确匹配、子集匹配、超集匹配和模糊匹配等。其中所述精确匹配是指查询语句的bitmap特征值与执行计划中所有节点的Bi tmap特征值完全一致,不同查询中表、列和谓词的顺序不同可以适用于此类匹配,若节点的特征值完全相同则完成匹配,将该执行计划作为新输入查询语句的执行计划。所述子集匹配是指当新输入查询语句的特征值和已有执行计划中的节点的一部分Bitmap特征值一致,可以直 接使用该部分的执行计划。所谓超集匹配是指新输入的语句的特征值包含了已有执行计划的节点的bitmap特征值,即是其超集,即以已有执行计划作为基础,生成新的执行计划。需要注意的是,遇到符合超集匹配的节点后,该部分执行计划直接用于生成新的执行计划,而将查询语句剩余未匹配部分,与其他已有执行计划特征值匹配,最后将所有匹配的部分执行计划进行组合,生成新的执行计划。如果其剩余特征值与其他已有执行计划的特征值都不匹配,则根据原有生成执行计划的方法重新生成剩余计划。模糊匹配是指新输入的查询语句的特征值与历史查询语句的执行计划的部分节点的特征值最大限度的一致,即可截取其匹配部分用到新的查询语句的执行计划的部分计划中。当然,本领域技术人员明了,当无法在已有的历史查询语句的执行计划中找到匹配的执行计划,则需要按照现有技术对查询请求的查询语句规划新的执行计划。
本发明用于数据查询的方法还包括用到以下数据结构至少之一:基于数据库管理系统(DBMS)中的所有表建立全局表集合序列(Global Table Set Sequence);基于所有表的对应列建立全局列集合序列(Global Column Set Sequence);对数据库管理系统中的所有谓词建立对应的谓词bitmap编码。一般而言,查询语句的关键组成元素包括表、列和谓词,但本发明并不限于这些关键组成元素,本领域技术人员基于本申请根据实际需要还可以将其它的关键组成元素作为关键关键组成元素,例如聚集操作,排序操作,去重操作等元素。其中所述全局表集合序列(Global Table Set Sequence)的结构可以是数组等形式,例如其每条记录的结构可以如下

表示全局列集合序列(Global Column Set Sequence)中每一个记录的数据结构可采用如下结构:

下面详细介绍其中如何计算查询语句中关键组成元素的特征值。由于已经建立了所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一,优选地,可以同时建立所述全局表集合序列、全局列集合序列和谓词bitmap编码,根据所述全局表集合序列、全局列集合序列和谓词bitmap编码计算所述查询语句的表bitmap特征值、列bitmap特征值和谓词bitmap特征值。根据系统内所有表和列生成全局表集合序列和全局列集合序列,用来确定数据库中所有表或指定表集合及其列都有唯一的bitmap位位置。假设数据库管理系统有四个表:表T1(C1,C2);T2(C1,C2);T3(C1);T4(C1),则其全局表集合序列为:T1,T2,T3,T4,因为其有4个表,则其对应的bitmap编码应该有4个bit位序列,其中T1对应于该bit位序列的第一位,T2对应于该bit位序列的第二位,并依此类推。其全局列集合序列为:T1.C1,T1.C2,T2.C1,T2.C2,T3.C1,T4.C1,因为有六个bit位,则其对应的bitmap编码应该有6个bit位序列,其中T1.C1对应于该bit位序列的第一位,T1.C2对应于该bit位序列的第二位,并依此类推。在数据库管理系统中对相应谓词进行bitmap编码。示例性的,如谓词>、<、=、>=、<=、<>,.....,则其bitmap编码可以示例性地分别规定为0001、0010、0100、0101、 0110、0011、......,从而确保数据库管理系统中的谓词都存在全局唯一的bitmap位值。当然,一种可能的扩展是,把所有的谓词,用和对表和列相似的编码方式进行编码和匹配。
图3示出了如何具体确定一个查询语句的关键组成元素的特征值。在步骤301中,确定查询语句的关键组成元素。在步骤303中,根据所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述查询语句的对应的表bitmap特征值、列bitmap特征值和谓词bitmap特征值中至少之一。以查询语句select*from T1,T2where T1.C1=T2.C2为例,其中关键组成元素是表T1,T2,列T1.C1,T2.C2,以及谓词为“=”,再考虑到前面提到的所建立的全局表集合序列,则该查询语句的表bitmap特征值为:1100,其表述该查询语句在全局表集合序列所对应的表bitmap特征值为1100,即该查询语句只涉及了表T1、T2,因此在对应的bitmap的对应bit位上其值为1,而该查询语句没有涉及表T3、T4,因此在对应的bitmap的对应bit位上其值为0,因此得到该查询语句的表bitmap特征值为:1100。依次类推可以得出该查询语句的列bitmap特征值为:100100。由于谓词部分涉及了谓词(操作本身)和谓词所操作的数据,因此按照前面所提到谓词predicate结构的表述方法,该查询语句的谓词bitmap特征值:0100100100,其中0100是谓词=本身的bitmap编码,而100100则是该查询语句的列bitmap特征值,其表述查询语句中的“where T1.C1=T2.C2”的含义。
图4示出了本发明用于确定执行计划的节点的bitmap特征值的具体实施方式。可以基于数据库管理系统的所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的对应的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值中的至少之一。其中所述基于所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的对应的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值中的至少之一还包括:根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和 所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值。一般而言,优化的历史查询语句的执行计划通常被划分成有执行计划节点(Node)组成的查询树结构。每个节点在程序实现中都会被实现为一个类或结构体,其中存储有该节点对应的各种属性。本发明将对现有数据库管理系统的执行计划节点进行扩展,在其中增加一个或多个bitmap属性,用于表示以该节点为父节点的执行计划树所表示的执行计划所涉及的所有关键组成元素:

其中TableBitMap[n]用于描述该节点涉及的所有表(table)的表bitmap属性特征值,ColumnBitMap[n]用于描述该节点涉及的所有列(column)列bitmap属性特征值,PredicateBitMap[n]用于描述该节点涉及的所有谓词(predicate)bitmap属性特征值,当然本领域技术人员了解,可以只为节点增加上述属性的至少之一。现在参考图4,图4示例性示出了全局表集合序列401(GTSS:Global Table Set Sequence)、全局列集合序列403(GCSS:Global Column Set Sequence),为了加快匹配速度,可以将保存优化的历史查询语言执行计划的全局执行计划列表405(GPC:Global Plan Cache)中的频繁匹配的查询计划存储在本地cache中,其它的存在硬盘中以加快匹配速度并节省空间,而执行计划节点树407则示例性示出了历史查询语句“Select*from T1,T2,T3where T1.C1=T2.C2and T2.C2>T3.C1”的执行计划的树结构,对于根节点409,通过深度遍历或者广度遍历的方法,可以确定根节点409共涉及了三个表T1、T2和T3、涉及了列T1.C1、T2.C2、T3.C1,并涉及谓词为“=”(0x0100)和“>”(0x0001), 而根据前面所介绍的方法,则可以得到该根节点409的表bitmap属性特征值为:(0x)1110,众所周知,0x用于表示编码为二进制。而其谓词bitmap属性特征值为:′0x0100100100′和′0x0001000110′,其用于表征谓词部分“where T1.C1=T2.C2and T2.C2>T3.C1”。分别将根节点的表bitmap属性特征值(Table Bi t Set)和谓词bitmap属性特征值(Predicate Bi t Set)赋予该根节点并存储。依次类推可以得到子节点411的表bitmap属性特征值和谓词bitmap属性特征值分别为0x1100和′0x0100100100′,图4中示出了根节点409、子节点411的bitmap属性特征值。对于叶子节点,一般不需要为其扩展的bitmap属性赋予相关bitmap属性特征值。图4给出的是根节点409、子节点(Sub node)和叶子节点(Leaf node)共三层的结构树,对于具有更多层的结构树,本领域技术人员完全可以基于图4的示例对每一个节点进行遍历计算和赋予其相关bitmap属性特征值。这样就可以建立起各节点具有相关bitmap属性特征值的执行计划树。本领域技术人员明了,也可以只是对执行计划书的部分节点计算和赋予其相关bitmap属性特征值。
在已经获得了新输入的查询语言的关键组成元素的bitmap特征值后,就可以将查询语言的关键组成元素的bitmap特征值与存储的各个执行计划的节点的bitmap属性特征值进行匹配。在本发明之前的匹配是整个查询的匹配,例如,新的查询和老的查询文本完全匹配,查询计划才能匹配。而本发明的一个具体实施方式使用bitmap描述查询计划的每个节点,新的查询和老的查询可以部分匹配,在找到匹配的节点后,可以重用原有查询计划的一部分,从而大大地提高了原来优化的执行计划的利用率,并较大程度上节省了生成对于新的查询语言的执行计划的成本。可以用查询请求中的查询语言的关键组成元素的对应bitmap特征值去逐一匹配所述全局执行计划列表中的各个执行计划的各个节点,匹配的算法可以由本领域技术人员根据实际需要而采用精确匹配,子集匹配,超集匹配和模糊匹配中的至少一种。遍历匹配一个执行计划的各个节点可以采用广度优先或深度优先算法。而对于所述全局执行计划列表中的各个执行计划的匹配可以采用并行的方式进行匹配,也可以采用逐一串行遍历的方式直至找到匹配的执行计划节点。当然本领域技术人员可以基于本申请构思出各种 遍历各个执行计划的各个节点的方法。优选可以将所述关键组成元素的特征值与所述执行计划中节点的对应特征值取与,响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。当匹配到一个节点,就可以将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分。图5示出了本发明用于数据查询的具体实例。如前所述,在数据库管理系统中维护一个全局表集合序列401(Global Table Set Sequence):T1,T2,T3,T4、全局列集合序列403(Global Column Set Sequence):T1.C1,T1.C2,T2.C1,T2.C2,T3.C1,T4.C1和全局执行计划列表405,示例性示出其包含下列优化的SQL:
Plan1(Select*from T1,T3where T1.C1<T3.C1)
Plan2(Select*from T1,T2,T3where T1.C1=T2.C2and T2.C2>T3.C1)
其中执行计划1(Plan1)用树状存储结构501表示,执行计划2(Plan2)用树状存储结构407表示,其中为执行计划1的根节点生成的表bitmap属性特征值为:1010,列bitmap属性特征值为:100110,谓词bitmap属性特征值:0010100100和0001000110。而为Plan2的根节点503表bitmap属性特征值为:1110,列bitmap属性特征值为:100110,谓词bitmap属性特征值为:0100100100和0001000110,为Plan2的子节点411表bitmap属性特征值为:1100,列bitmap属性特征值为:100100,谓词bitmap属性特征值为:0100100100。如上文所述,根据输入的新的查询语句(seleet*from T1,T2where T1.C1=T2.C2)生成表bi tmap特征值为:1100,列bitmap特征值为:100100,谓词bitmap特征值为:0100100100。在匹配过程中,新的Plan与Plan1对以后能够的表特征值进行对应匹配算法(精确匹配、子集匹配、超集匹配、模糊匹配等),本例子里面选用超集或者子集匹配,进行匹配时,优选地采用将所述新查询语句(New Query)的关键组成元素的特征值与执行计划中节点的特征值取与的方式来进行匹配,比如当新的查询语句关键组成元素的bitmap特征值与执行计划1的根节点501的bitmap属性特征值进行比较时,比如先对表的特征值进行比较,发现执行计划1根节点501的表bitmap属性特征值与新的查询语句的表bitmap特征值 1010&1100=1000!=1010或者1100,即结果1000不等于执行计划1的表bitmap属性特征值与新的查询语句的表bitmap特征值中任一个,因此执行计划1与查询语句从根节点501不匹配,则无需进行执行计划1的子节点的进一步的匹配。而对于执行计划2,新查询语句的表bitmap特征值、列bitmap特征值与执行计划2的对应bitmap属性特征值匹配,但是新查询语句的谓词bitmap特征值是执行计划2的对应的谓词bitmap属性特征值的子集(注意谓词的匹配是逐个进行的,例如,将新查询语句的每个谓词,与已有执行计划的所有谓词逐个进行匹配,而不是像表或列的匹配那样一次完成),因此应该继续对子节点411进行匹配,结果发现新查询语句的关键元素bitmap特征值与执行计划2的对应的bitmap属性特征值是完全匹配的,则意味着执行计划2的子节点411对应的执行计划可以部分被新的查询语句作为执行计划,其中子节点411对应的执行计划是子节点411及其子节点411的两个叶子节点所组成的执行计划,从而较大程度上节省了采用现有方法重新生成该查询语句的执行计划的成本。
本发明另一方面还提供一种用于数据查询的系统600。该系统600包括:接收装置601,其被配置用于接收查询请求,所述查询请求包括查询语句;计算装置603,被配置用于计算所述查询语句中关键组成元素的特征值;匹配装置605,被配置用于基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;执行计划生成装置607,被配置用于响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。关于接收装置601、计算装置603、匹配装置605和执行计划生成装置607的具体实现方法已经在上文进行了详细说明,在此不再赘述。
优选地,所述系统600还包括以下至少之一:全局表集合序列建立装置,被配置用于基于数据库管理系统中的所有表建立全局表集合序列;全局列集合序列建立装置,被配置用于基于所有表的对应列建立全局列集合序列;谓词bitmap编码建立装置,被配置用于对数据库管理系统中的所有谓词建立对应的谓词bitmap编码。
优选地,其中所述计算所述查询语句中关键组成元素的特征值包括:根据 所述全局表集合序列、所述全局列集合序列和所述谓词bitmap编码中至少之一计算所述查询语句对应的表bitmap特征值、列bitmap特征值和谓词bitmap特征值中至少之一,其中所述关键组成元素包括以下至少之一:表、列、谓词。
优选地,所述系统600还包括:bitmap属性增加装置,被配置用于对历史查询语句的执行计划的至少一个节点增加以下至少之一的bitmap属性:表bitmap属性、列bitmap属性、谓词bitmap属性。
优选地,所述系统600还包括:bitmap属性特征值计算装置,被配置用于基于所述全局表集合序列、全局列集合序列和谓词bitmap编码中至少之一计算所述执行计划的至少一个节点的对应的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值中的至少之一。
优选地,其中所述bitmap属性特征值计算装置还包括:用于根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词bitmap编码中对应的至少之一计算所述执行计划的至少一个节点的表bitmap属性特征值、列bitmap属性特征值、谓词bitmap属性特征值的装置。
优选地,其中所述基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值包括以下至少之一:精确匹配、子集匹配、超集匹配和模糊匹配。
优选地,所述匹配装置包括:取与装置,被配置用于将所述关键组成元素的特征值与所述执行计划中节点的对应特征值取与;确定匹配装置,被配置用于响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。
优选地,其中所述执行计划生成装置包括:用于将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分的装置。
优选地,其中所述历史查询语句的执行计划是已经优化的执行计划。
优选地,其中所述查询语句是结构化查询语句。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

用于数据查询的方法和系统.pdf_第1页
第1页 / 共19页
用于数据查询的方法和系统.pdf_第2页
第2页 / 共19页
用于数据查询的方法和系统.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《用于数据查询的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于数据查询的方法和系统.pdf(19页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104216894A43申请公布日20141217CN104216894A21申请号201310211748122申请日20130531G06F17/3020060171申请人国际商业机器公司地址美国纽约阿芒克72发明人王晨周瓒张广舟刘晶晶邱雷徐福飞赵胜74专利代理机构北京市金杜律师事务所11256代理人酆迅李峥宇54发明名称用于数据查询的方法和系统57摘要本发明公开了一种用于数据查询的方法和系统。所述方法包括接收查询请求,所述查询请求包括查询语句;计算所述查询语句中关键组成元素的特征值;基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;响应于匹配到对应所。

2、述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。本发明的方法和系统有利于提高执行计划的重用程度,进而提高生成查询语句的执行计划的效率以及数据库管理系统在性能上的稳定性。51INTCL权利要求书3页说明书11页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书11页附图4页10申请公布号CN104216894ACN104216894A1/3页21一种用于数据查询的方法,包括接收查询请求,所述查询请求包括查询语句;计算所述查询语句中关键组成元素的特征值;基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;响应于匹配到对应所述节点的。

3、特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。2根据权利要求1所述的方法,所述方法还包括以下至少之一基于数据库管理系统中的所有表建立全局表集合序列;基于所有表的对应列建立全局列集合序列;对数据库管理系统中的所有谓词建立对应的谓词BITMAP编码。3根据权利要求2所述的方法,其中所述计算所述查询语句中关键组成元素的特征值包括根据所述全局表集合序列、所述全局列集合序列和所述谓词BITMAP编码中至少之一计算所述查询语句对应的表BITMAP特征值、列BITMAP特征值和谓词BITMAP特征值中至少之一,其中所述关键组成元素包括以下至少之一表、列、谓词。4根据权利要求2所述的方法,所。

4、述方法还包括对历史查询语句的执行计划的至少一个节点增加以下至少之一的BITMAP属性表BITMAP属性、列BITMAP属性、谓词BITMAP属性。5根据权利要求4所述的方法,所述方法还包括基于所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一计算所述执行计划的至少一个节点的对应的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值中的至少之一。6根据权利要求5所述的方法,其中所述基于所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一计算所述执行计划的至少一个节点的对应的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP。

5、属性特征值中的至少之一还包括根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词BITMAP编码中对应的至少之一计算所述执行计划的至少一个节点的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值。7根据权利要求1所述的方法,其中所述基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值包括以下至少之一精确匹配、子集匹配、超集匹配和模糊匹配。8根据权利要求1所述的方法,其中所述基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值包括将所述关键组成元素的。

6、特征值和所述执行计划中节点的对应特征值取与;响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。9根据权利要求1所述的方法,其中所述基于所述节点对应的执行计划,生成所述查询语句的执行计划包括权利要求书CN104216894A2/3页3将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分。10根据权利要求1所述的方法,其中所述历史查询语句的执行计划是已经优化的执行计划。11根据权利要求1所述的方法,其中所述查询语句是结构化查询语句SQL。12一种用于数据查询的系统,包括接收装置,被配置用于接收查询请求,所述查询请求包括查询语句;计算装置,被配置用于计算所述查。

7、询语句中关键组成元素的特征值;匹配装置,被配置用于基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;执行计划生成装置,被配置用于响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。13根据权利要求12所述的系统,所述系统还包括以下至少之一全局表集合序列建立装置,被配置用于基于数据库管理系统中的所有表建立全局表集合序列;全局列集合序列建立装置,被配置用于基于所有表的对应列建立全局列集合序列;谓词BITMAP编码建立装置,被配置用于对数据库管理系统中的所有谓词建立对应的谓词BITMAP编码。14根据权利要求13所述的系统,其中所述计算所述查。

8、询语句中关键组成元素的特征值包括根据所述全局表集合序列、所述全局列集合序列和所述谓词BITMAP编码中至少之一计算所述查询语句对应的表BITMAP特征值、列BITMAP特征值和谓词BITMAP特征值中至少之一,其中所述关键组成元素包括以下至少之一表、列、谓词。15根据权利要求13所述的系统,所述系统还包括BITMAP属性增加装置,被配置用于对历史查询语句的执行计划的至少一个节点增加以下至少之一的BITMAP属性表BITMAP属性、列BITMAP属性、谓词BITMAP属性。16根据权利要求4所述的系统,所述系统还包括BITMAP属性特征值计算装置,被配置用于基于所述全局表集合序列、全局列集合序列。

9、和谓词BITMAP编码中至少之一计算所述执行计划的至少一个节点的对应的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值中的至少之一。17根据权利要求16所述的系统,其中所述BITMAP属性特征值计算装置还包括用于根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词BITMAP编码中对应的至少之一计算所述执行计划的至少一个节点的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值的装置。18根据权利要求12所述的系统,其中所述基于所述关键组成元素的特征值。

10、匹配历史查询语句的执行计划中节点的特征值包括以下至少之一精确匹配、子集匹配、超集匹配和模糊匹配。19根据权利要求12所述的系统,其中所述匹配装置包括取与装置,被配置用于将所述关键组成元素的特征值和所述执行计划中节点的对应特权利要求书CN104216894A3/3页4征值取与;确定匹配装置,被配置用于响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。20根据权利要求12所述的系统,其中所述执行计划生成装置包括用于将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分的装置。21根据权利要求12所述的系统,其中所述历史查询语句的执行计划是已经优化的执行计划。2。

11、2根据权利要求12所述的系统,其中所述查询语句是结构化查询语句。权利要求书CN104216894A1/11页5用于数据查询的方法和系统技术领域0001本发明涉及数据处理技术,更具体地涉及一种用于数据查询方法和系统。背景技术0002数据库管理系统在处理用户的查询请求时,对于如何执行该查询,存在多种执行路径。但有些执行路径所花费的成本比如查询时间会较高,有些执行路径则会较低。因此一般事先需要对查询的执行路径进行优化。例如,当前业内的主流数据库管理系统中所使用的查询优化器,主要是使用“基于规则”和“基于代价”的两种优化方法来优化SQL语句,并生成相对较优的查询计划。但是在某些情况下,优化器的全自动优。

12、化过程可能产生性能无法接受的执行计划。例如00031数据库管理系统已经针对了之前的典型应用常用结构化查询语言SQL语句进行了调优。但对于新的SQL语句,原有的调优参数可能并不适用,这样优化器可能产生效率很差的执行路径。00042实际应用系统中,SQL查询语句往往非常长并且非常复杂。优化器的算法的由于其局限性无法生成较优执行计划,而且对这些SQL语句的优化和编译往往耗费系统较长的时间。0005在一个经过调优的数据库系统中,对于新进入的SQL语句,我们应当尽可能的复用之前优化过的查询计划,来减少编译和优化SQL语句所使用的时间。目前在主流商用数据库管理系统中,广泛使用的查询计划复用方法普遍存在以下。

13、一些缺点00061查询计划是以整体为单位进行复用的,无法对执行计划进行更细粒度的分割,这导致复用效率低下。00072查询计划复用时,往往简单的采用SQL语句文本匹配的方式进行匹配和复用。匹配效率低下。0008因此需要一种能够以较高效率的生成可用的执行计划的数据查询方法。发明内容0009本发明提供一种用于数据查询的方法及其系统。0010根据本发明的一个方面,提供了一种用于数据查询的方法,包括接收查询请求,所述查询请求包括查询语句;计算所述查询语句中关键组成元素的特征值;基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计。

14、划,生成所述查询语句的执行计划。0011根据本发明的另一个方面,提供了一种用于数据查询的系统,包括接收装置,被配置用于接收查询请求,所述查询请求包括查询语句;计算装置,被配置用于计算所述查询语句中关键组成元素的特征值;匹配装置,被配置用于基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;执行计划生成装置,被配置用于响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。说明书CN104216894A2/11页60012采用本发明的一个具体实施方式的BITMAP匹配算法较之之前的字符串比较算法大幅度提高了查询速度。另一方面本发明的方法和系统有。

15、利于提高执行计划的重用程度,进而提高生成查询语句的执行计划的效率以及数据库管理系统在性能上的稳定性。附图说明0013通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。0014图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。0015图2示出了本发明用于数据查询的方法的第一具体实施方式。0016图3示出了如何具体确定一个查询语句的关键组成元素的特征值。0017图4示出了本发明用于确定执行计划的节点的BITMAP特征值的具体实施方式。0018图5示出了本发明。

16、用于数据查询的一个具体实例。0019图6示出了本发明用于数据查询的系统的框架示意图。具体实施方式0020下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。0021所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即可以是完全的硬件、也可以是完全的软件包括固件、驻留软件、微代码等,还可以是硬件和软件结合的形式,本文一般称为“电路”。

17、、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。0022可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子非穷举的列表包括具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑磁盘只读存储器CDR。

18、OM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。0023计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。说明书CN104216894A3/11页70024。

19、计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。0025可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如JAVA、SMALLTALK、C,还包括常规的过程式程序设计语言诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网LAN或广。

20、域网WAN连接到用户计算机,或者,可以连接到外部计算机例如利用因特网服务提供商来通过因特网连接。0026下面将参照本发明实施例的方法、装置系统和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。0027也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作。

21、的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置INSTRUCTIONMEANS的制造品MANUFACTURE。0028也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。0029图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,。

22、不应对本发明实施例的功能和使用范围带来任何限制。0030如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件包括系统存储器28和处理单元16的总线18。0031总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构ISA总线,微通道体系结构MAC总线,增强型ISA总线、视频电子标准协会VESA局域总线以及外围组件互连PCI总线。00。

23、32计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。0033系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器RAM30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其说明书CN104216894A4/11页8它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质图1未显示,通常称为“硬盘驱动器”。尽管图1中未示出,可以提供用于对可移动非易失性磁盘例如“软盘”读写的。

24、磁盘驱动器,以及对可移动非易失性光盘例如CDROM,DVDROM或者其它光介质读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组例如至少一个程序模块,这些程序模块被配置以执行本发明各实施例的功能。0034具有一组至少一个程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。0035计算机系统/服。

25、务器12也可以与一个或多个外部设备14例如键盘、指向设备、显示器24等通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备例如网卡,调制解调器等等通信。这种通信可以通过输入/输出I/O接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络例如局域网LAN,广域网WAN和/或公共网络,例如因特网通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但。

26、不限于微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。0036现在参看图2,图2示出了本发明用于数据查询的方法的第一具体实施方式。在步骤201中,接收查询请求,所述查询请求包括查询语句。优选地,所述查询语句是结构化查询语句。一个查询语句的示例如SELECTFROMT1,T2WHERET1C1T2C2。在步骤203中,计算所述查询语句中关键组成元素的特征值。一般而言,查询语句中的关键组成元素重要的主要是表、列,以及对所述表和列进行操作的谓词,当然本领域技术人员根据实际需要,也可以确定查询语句中的其它组成元素作为关键组成元素,例如聚集操作,排序操。

27、作,去重操作等所涉及的相关集合等。可用采用统一的特定编码方法,将查询语句中涉及的各个关键组成元素赋予全局唯一值,从而获得了所述查询语句中关键组成元素的特征值。优选地,该特定编码方法可以采用BITMAP编码法,所述BITMAP编码法就是用一个BIT比特位来标记某个元素对于的值,关于BITMAP编码法的具体介绍,可以进一步参考HTTP/ENWIKIPEDIAORG/WIKI/BITARRAY维基百科。BITMAP是一种非常适合本专利提出的细粒度查询执行计划的数据结构,它具有以下特征A它可以使用统一的方式表示基本元素以及元素的组合;B具有良好的可扩展性;C良好的支持比较、组合和拆分操作;D具有压缩存。

28、储格式以节省存储空间。而对于如何用BITMAP编码表示查询语言的关键组成元素的BITMAP特征值则在下文中进行详细介绍。当然,本领域技术人员明了,基于本申请可以采用任何适用的编码方法,而本申请的下文将主要基于BITMAP编码法介绍本发明。在步骤205中,基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值。一般而言,数据库管理系统中都会存储有调优的历史查询语句的执行计划,现有的执行计划都说明书CN104216894A5/11页9是以树结构的形式进行存储,其中根节点和各个节点一般为谓词,而叶子节点则为谓词操作对象,一般为表或者表的列。本领域技术人员了解,执行计划的节点对应的执行计。

29、划是指由该节点及其该节点的所有子节点、所有叶子节点所组成的执行计划,比如,一个执行计划中的根节点对应的执行计划是指整个执行计划,而对于其它子节点对应的执行计划是指该子节点及其该子节点的所有子节点、所有叶子节点所组成的执行计划。优选地,预先可以根据这些优化的执行计划的节点及其子节点和叶子节点所涉及的表、列或谓词操作基于BITMAP编码法生成各个节点的特征值。节点的BITMAP特征值的优选具体产生方法将在后面进行更为详细的说明。在步骤207中,响应于匹配到对应所述相关节点的特征值,基于所述相关节点对应的执行计划,生成所述查询语句的执行计划。优选地,将所述相关节点对应的执行计划作为所述查询语句的执行。

30、计划的至少一部分。优选地,在上述匹配过程中,一般从执行计划的根节点开始进行匹配,可以使用精确匹配、子集匹配、超集匹配和模糊匹配等。其中所述精确匹配是指查询语句的BITMAP特征值与执行计划中所有节点的BITMAP特征值完全一致,不同查询中表、列和谓词的顺序不同可以适用于此类匹配,若节点的特征值完全相同则完成匹配,将该执行计划作为新输入查询语句的执行计划。所述子集匹配是指当新输入查询语句的特征值和已有执行计划中的节点的一部分BITMAP特征值一致,可以直接使用该部分的执行计划。所谓超集匹配是指新输入的语句的特征值包含了已有执行计划的节点的BITMAP特征值,即是其超集,即以已有执行计划作为基础,。

31、生成新的执行计划。需要注意的是,遇到符合超集匹配的节点后,该部分执行计划直接用于生成新的执行计划,而将查询语句剩余未匹配部分,与其他已有执行计划特征值匹配,最后将所有匹配的部分执行计划进行组合,生成新的执行计划。如果其剩余特征值与其他已有执行计划的特征值都不匹配,则根据原有生成执行计划的方法重新生成剩余计划。模糊匹配是指新输入的查询语句的特征值与历史查询语句的执行计划的部分节点的特征值最大限度的一致,即可截取其匹配部分用到新的查询语句的执行计划的部分计划中。当然,本领域技术人员明了,当无法在已有的历史查询语句的执行计划中找到匹配的执行计划,则需要按照现有技术对查询请求的查询语句规划新的执行计划。

32、。0037本发明用于数据查询的方法还包括用到以下数据结构至少之一基于数据库管理系统DBMS中的所有表建立全局表集合序列GLOBALTABLESETSEQUENCE;基于所有表的对应列建立全局列集合序列GLOBALCOLUMNSETSEQUENCE;对数据库管理系统中的所有谓词建立对应的谓词BITMAP编码。一般而言,查询语句的关键组成元素包括表、列和谓词,但本发明并不限于这些关键组成元素,本领域技术人员基于本申请根据实际需要还可以将其它的关键组成元素作为关键关键组成元素,例如聚集操作,排序操作,去重操作等元素。其中所述全局表集合序列GLOBALTABLESETSEQUENCE的结构可以是数组等。

33、形式,例如其每条记录的结构可以如下0038说明书CN104216894A6/11页100039表示全局列集合序列GLOBALCOLUMNSETSEQUENCE中每一个记录的数据结构可采用如下结构00400041下面详细介绍其中如何计算查询语句中关键组成元素的特征值。由于已经建立了所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一,优选地,可以同时建立所述全局表集合序列、全局列集合序列和谓词BITMAP编码,根据所述全局表集合序列、全局列集合序列和谓词BITMAP编码计算所述查询语句的表BITMAP特征值、列BITMAP特征值和谓词BITMAP特征值。根据系统内所有表和列生成全局。

34、表集合序列和全局列集合序列,用来确定数据库中所有表或指定表集合及其列都有唯一的BITMAP位位置。假设数据库管理系统有四个表表T1C1,C2;T2C1,C2;T3C1;T4C1,则其全局表集合序列为T1,T2,T3,T4,因为其有4个表,则其对应的BITMAP编码应该有4个BIT位序列,其中T1对应于该BIT位序列的第一位,T2对应于该BIT位序列的第二位,并依此类推。其全局列集合序列为T1C1,T1C2,T2C1,T2C2,T3C1,T4C1,因为有六个BIT位,则其对应的BITMAP编码应该有6个BIT位序列,其中T1C1对应于该BIT位序列的第一位,T1C2对说明书CN104216894。

35、A107/11页11应于该BIT位序列的第二位,并依此类推。在数据库管理系统中对相应谓词进行BITMAP编码。示例性的,如谓词、,则其BITMAP编码可以示例性地分别规定为0001、0010、0100、0101、0110、0011、,从而确保数据库管理系统中的谓词都存在全局唯一的BITMAP位值。当然,一种可能的扩展是,把所有的谓词,用和对表和列相似的编码方式进行编码和匹配。0042图3示出了如何具体确定一个查询语句的关键组成元素的特征值。在步骤301中,确定查询语句的关键组成元素。在步骤303中,根据所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一计算所述查询语句的对应的表。

36、BITMAP特征值、列BITMAP特征值和谓词BITMAP特征值中至少之一。以查询语句SELECTFROMT1,T2WHERET1C1T2C2为例,其中关键组成元素是表T1,T2,列T1C1,T2C2,以及谓词为“”,再考虑到前面提到的所建立的全局表集合序列,则该查询语句的表BITMAP特征值为1100,其表述该查询语句在全局表集合序列所对应的表BITMAP特征值为1100,即该查询语句只涉及了表T1、T2,因此在对应的BITMAP的对应BIT位上其值为1,而该查询语句没有涉及表T3、T4,因此在对应的BITMAP的对应BIT位上其值为0,因此得到该查询语句的表BITMAP特征值为1100。依。

37、次类推可以得出该查询语句的列BITMAP特征值为100100。由于谓词部分涉及了谓词操作本身和谓词所操作的数据,因此按照前面所提到谓词PREDICATE结构的表述方法,该查询语句的谓词BITMAP特征值0100100100,其中0100是谓词本身的BITMAP编码,而100100则是该查询语句的列BITMAP特征值,其表述查询语句中的“WHERET1C1T2C2”的含义。0043图4示出了本发明用于确定执行计划的节点的BITMAP特征值的具体实施方式。可以基于数据库管理系统的所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一计算所述执行计划的至少一个节点的对应的表BITMAP属。

38、性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值中的至少之一。其中所述基于所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一计算所述执行计划的至少一个节点的对应的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值中的至少之一还包括根据所述至少一个节点和该节点对应的子节点和叶子节点中所用到的所有表、所有列和所有谓词中至少之一,结合所述全局表集合序列、全局列集合序列和谓词BITMAP编码中至少之一计算所述执行计划的至少一个节点的表BITMAP属性特征值、列BITMAP属性特征值、谓词BITMAP属性特征值。一般而言,优化的历史查询语句的执行。

39、计划通常被划分成有执行计划节点NODE组成的查询树结构。每个节点在程序实现中都会被实现为一个类或结构体,其中存储有该节点对应的各种属性。本发明将对现有数据库管理系统的执行计划节点进行扩展,在其中增加一个或多个BITMAP属性,用于表示以该节点为父节点的执行计划树所表示的执行计划所涉及的所有关键组成元素0044说明书CN104216894A118/11页120045其中TABLEBITMAPN用于描述该节点涉及的所有表TABLE的表BITMAP属性特征值,COLUMNBITMAPN用于描述该节点涉及的所有列COLUMN列BITMAP属性特征值,PREDICATEBITMAPN用于描述该节点涉及的。

40、所有谓词PREDICATEBITMAP属性特征值,当然本领域技术人员了解,可以只为节点增加上述属性的至少之一。现在参考图4,图4示例性示出了全局表集合序列401GTSSGLOBALTABLESETSEQUENCE、全局列集合序列403GCSSGLOBALCOLUMNSETSEQUENCE,为了加快匹配速度,可以将保存优化的历史查询语言执行计划的全局执行计划列表405GPCGLOBALPLANCACHE中的频繁匹配的查询计划存储在本地CACHE中,其它的存在硬盘中以加快匹配速度并节省空间,而执行计划节点树407则示例性示出了历史查询语句“SELECTFROMT1,T2,T3WHERET1C1T2。

41、C2ANDT2C2T3C1”的执行计划的树结构,对于根节点409,通过深度遍历或者广度遍历的方法,可以确定根节点409共涉及了三个表T1、T2和T3、涉及了列T1C1、T2C2、T3C1,并涉及谓词为“”0X0100和“”0X0001,而根据前面所介绍的方法,则可以得到该根节点409的表BITMAP属性特征值为0X1110,众所周知,0X用于表示编码为二进制。而其谓词BITMAP属性特征值为0X0100100100和0X0001000110,其用于表征谓词部分“WHERET1C1T2C2ANDT2C2T3C1”。分别将根节点的表BITMAP属性特征值TABLEBITSET和谓词BITMAP属性。

42、特征值PREDICATEBITSET赋予该根节点并存储。依次类推可以得到子节点411的表BITMAP属性特征值和谓词BITMAP属性特征值分别为0X1100和0X0100100100,图4中示出了根节点409、子节点411的BITMAP属性特征值。对于叶子节点,一般不需要为其扩展的BITMAP属性赋予相关BITMAP属性特征值。图4给出的是根节点409、子节点SUBNODE和叶子节点LEAFNODE共三层的结构树,对于具有更多层的结构树,本领域技术人员完全可以基于图4的示例对每一个节点进行遍历计算和赋予其相关BITMAP属性特征值。这样就可以建立起各节点具有相关BITMAP属性特征值的执行计划。

43、树。本领域技术人员明了,也可以只是对执行计划书的部分节点计算和赋予其相关BITMAP属性特征值。0046在已经获得了新输入的查询语言的关键组成元素的BITMAP特征值后,就可以将查询语言的关键组成元素的BITMAP特征值与存储的各个执行计划的节点的BITMAP属性特征值进行匹配。在本发明之前的匹配是整个查询的匹配,例如,新的查询和老的查询文本完全匹配,查询计划才能匹配。而本发明的一个具体实施方式使用BITMAP描述查询计划的每个节点,新的查询和老的查询可以部分匹配,在找到匹配的节点后,可以重用原有查询计划的一部分,从而大大地提高了原来优化的执行计划的利用率,并较大程度上节省了生说明书CN104。

44、216894A129/11页13成对于新的查询语言的执行计划的成本。可以用查询请求中的查询语言的关键组成元素的对应BITMAP特征值去逐一匹配所述全局执行计划列表中的各个执行计划的各个节点,匹配的算法可以由本领域技术人员根据实际需要而采用精确匹配,子集匹配,超集匹配和模糊匹配中的至少一种。遍历匹配一个执行计划的各个节点可以采用广度优先或深度优先算法。而对于所述全局执行计划列表中的各个执行计划的匹配可以采用并行的方式进行匹配,也可以采用逐一串行遍历的方式直至找到匹配的执行计划节点。当然本领域技术人员可以基于本申请构思出各种遍历各个执行计划的各个节点的方法。优选可以将所述关键组成元素的特征值与所述。

45、执行计划中节点的对应特征值取与,响应于取与后的结果等于所述关键组成元素的特征值,确定匹配到对应所述节点的特征值。当匹配到一个节点,就可以将所述节点对应的执行计划作为所述查询语句的执行计划的至少一部分。图5示出了本发明用于数据查询的具体实例。如前所述,在数据库管理系统中维护一个全局表集合序列401GLOBALTABLESETSEQUENCET1,T2,T3,T4、全局列集合序列403GLOBALCOLUMNSETSEQUENCET1C1,T1C2,T2C1,T2C2,T3C1,T4C1和全局执行计划列表405,示例性示出其包含下列优化的SQL0047PLAN1SELECTFROMT1,T3WHE。

46、RET1C1T3C10048PLAN2SELECTFROMT1,T2,T3WHERET1C1T2C2ANDT2C2T3C10049其中执行计划1PLAN1用树状存储结构501表示,执行计划2PLAN2用树状存储结构407表示,其中为执行计划1的根节点生成的表BITMAP属性特征值为1010,列BITMAP属性特征值为100110,谓词BITMAP属性特征值0010100100和0001000110。而为PLAN2的根节点503表BITMAP属性特征值为1110,列BITMAP属性特征值为100110,谓词BITMAP属性特征值为0100100100和0001000110,为PLAN2的子节点4。

47、11表BITMAP属性特征值为1100,列BITMAP属性特征值为100100,谓词BITMAP属性特征值为0100100100。如上文所述,根据输入的新的查询语句SELEETFROMT1,T2WHERET1C1T2C2生成表BITMAP特征值为1100,列BITMAP特征值为100100,谓词BITMAP特征值为0100100100。在匹配过程中,新的PLAN与PLAN1对以后能够的表特征值进行对应匹配算法精确匹配、子集匹配、超集匹配、模糊匹配等,本例子里面选用超集或者子集匹配,进行匹配时,优选地采用将所述新查询语句NEWQUERY的关键组成元素的特征值与执行计划中节点的特征值取与的方式来进。

48、行匹配,比如当新的查询语句关键组成元素的BITMAP特征值与执行计划1的根节点501的BITMAP属性特征值进行比较时,比如先对表的特征值进行比较,发现执行计划1根节点501的表BITMAP属性特征值与新的查询语句的表BITMAP特征值1010110010001010或者1100,即结果1000不等于执行计划1的表BITMAP属性特征值与新的查询语句的表BITMAP特征值中任一个,因此执行计划1与查询语句从根节点501不匹配,则无需进行执行计划1的子节点的进一步的匹配。而对于执行计划2,新查询语句的表BITMAP特征值、列BITMAP特征值与执行计划2的对应BITMAP属性特征值匹配,但是新查。

49、询语句的谓词BITMAP特征值是执行计划2的对应的谓词BITMAP属性特征值的子集注意谓词的匹配是逐个进行的,例如,将新查询语句的每个谓词,与已有执行计划的所有谓词逐个进行匹配,而不是像表或列的匹配那样一次完成,因此应该继续对子节点411进行匹配,结果发现新查询语句的关键元素BITMAP特征值与执行计划2的对应的BITMAP属性特征值是完全匹配的,则意味着执行计划2的子节点411对应的执行计划可以部分被说明书CN104216894A1310/11页14新的查询语句作为执行计划,其中子节点411对应的执行计划是子节点411及其子节点411的两个叶子节点所组成的执行计划,从而较大程度上节省了采用现有方法重新生成该查询语句的执行计划的成本。0050本发明另一方面还提供一种用于数据查询的系统600。该系统600包括接收装置601,其被配置用于接收查询请求,所述查询请求包括查询语句;计算装置603,被配置用于计算所述查询语句中关键组成元素的特征值;匹配装置605,被配置用于基于所述关键组成元素的特征值匹配历史查询语句的执行计划中节点的特征值;执行计划生成装置607,被配置用于响应于匹配到对应所述节点的特征值,基于所述节点对应的执行计划,生成所述查询语句的执行计划。关于接收装置601、计算装置603、匹配装置605和执行计。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1