CN103262062A - 用于执行嵌套连接操作的系统和方法 - Google Patents

用于执行嵌套连接操作的系统和方法 Download PDF

Info

Publication number
CN103262062A
CN103262062A CN2010800704936A CN201080070493A CN103262062A CN 103262062 A CN103262062 A CN 103262062A CN 2010800704936 A CN2010800704936 A CN 2010800704936A CN 201080070493 A CN201080070493 A CN 201080070493A CN 103262062 A CN103262062 A CN 103262062A
Authority
CN
China
Prior art keywords
row
data source
external data
subregion
connection procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800704936A
Other languages
English (en)
Inventor
奥尼·K·阿尔-奥马里
陈启凡
迈克尔·J·汉隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN103262062A publication Critical patent/CN103262062A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement

Abstract

提供了用于执行嵌套连接操作的系统和方法。使用用来对内表进行分区的分区键函数,对外部数据源计算分区键值。针对内表的多个分区中的每个分区建立连接过程(在204),内表的给定分区代表多个分区键值。根据来自外部数据源的每行的相关联分区键值,将来自外部数据源的每行选路至连接过程(在206)。对内表进行探测,以返回来自内表的具有与来自外部数据源的行相关联的分区键值的行(在208)。连接从外部数据源的行和从内表返回的行,以形成合并表中的行(在210)。

Description

用于执行嵌套连接操作的系统和方法
技术领域
本发明涉及信息处理,并且更具体地涉及用于执行嵌套连接操作的系统和方法。
背景技术
关系型数据库系统存储数据表,数据表典型地通过使数据存储简化和使数据查询更高效的关系链接在一起。结构化查询语言(SQL)是用于创建关系型数据库和对关系型数据库进行操作的标准化语言。在SQL查询中可以使用连接操作来合并来自多个数据库表的数据集。连接操作的常见用法是将来自外表的那些行合并至内表的行,这些行对于两个表中的一组列具有相等的值。该组列被称为连接键(join key)。
在并行数据库系统中,通常根据可以被称为分区键(partitioning key)的一组列中的值对表进行分区。如果连接键是内表的分区键的超集,则可以通过使用从外表中产生的连接键的分区键列执行嵌套连接操作,以选择内表的正确分区来探测。
附图说明
图1图示经由外部子重分区连接方案合并记录的数据库系统示例。
图2是图示使用用于执行嵌套连接的外部子重分区方案的查询计划示例的示意图。
图3图示用于执行嵌套连接的示例方法。
图4图示能够用来实现图1至图3中所示的系统和方法的计算机系统的示例。
具体实施方式
在并行数据库系统中,常常使用多个过程来针对单个查询执行嵌套连接操作。这种对被分区的内表执行的并行嵌套连接可能需要所有过程来访问所有内部分区,这导致单个查询需要的资源激增。此外,在大型系统中,连接操作可能在计算上是如此昂贵,以至于限制在任何给定时间能够执行的连接操作的数量。
为此,提供一种降低嵌套连接操作的计算费用的数据库系统。此外,该系统避免引入数据偏斜(data skew),数据偏斜可能在内表的分区键的值未在外表中均匀分配的情况下导致一些过程比其它过程工作更努力。还可以使用来自内表的经探测行的缓存作为防止数据偏斜问题的解决方案的部分。
图1图示具有大规模并行处理体系结构的数据库系统10的示例,该数据库系统10响应于包含嵌套连接的查询经由外部子重分区(OCR)连接方案在数据库内对来自表的记录进行合并。系统10可以是分布式计算机系统,该分布式计算机系统具有通过局域网和广域网通信媒介16互联的多个计算机。在图1的示例中,系统10包括数据库服务器12和工作站计算机14,但是系统可以包括一个以上的服务器或工作站计算机。
作为示例,数据库服务器12可以被实现为SQL数据库引擎,该SQL数据库引擎管理SQL查询的控制和执行。工作站计算机14将SQL查询传递给数据库服务器12。操作工作站计算机14的用户可以传送SQL查询来检索和/或改变在数据库服务器12中存储的一组数据库表23。服务器12的SQL数据库引擎生成用于执行SQL查询的优化方案,然后执行该方案。
数据库服务器12可以包括中央处理单元(CPU)18、主存储器26、辅助存储器22以及用于与用户工作站14和其它系统资源通信的通信接口16。辅助存储器22可以存储数据库表23。在大规模并行处理体系结构中,数据库表将被分区,并且数据库表的不同分区可以存储在不同的数据库服务器中。然而,将理解,从用户工作站计算机14的角度看,数据库服务器12可以视作单个实体。
用户工作站14可以包括中央处理单元(CPU)31、主存储器32、用于与数据库服务器12和其它系统资源通信的通信接口33、辅助存储器34、输入设备35和输出设备36。输入设备35可以包括以下任一种:键盘、触摸屏、指点设备、麦克风和/或允许用户传递命令并与工作站14上的方法和功能交互的类似设备。输出设备36可以包括以下任一种:显示设备、扬声器、打印机、触摸显示器和/或用于以人能理解的形式向用户传递信息的类似设备。辅助存储器34可以用于存储计算机程序,例如用来访问数据库服务器12的通信软件。一些端用户工作站14可以是“哑”终端,“哑”终端不包括任何辅助存储器34,因此仅执行从服务器计算机(例如数据库服务器12或另一服务器(未示出))下载到主存储器32内的软件。
数据库服务器12的主存储器26包含操作系统52、查询处理器54、查询优化器56和查询执行引擎58。查询处理器54对输入查询(例如以SQL(结构化查询语言)书写的查询)进行分析,以将输入查询转换成被称为查询树的内部表示。查询树代表待与任何所需物理属性一起优化的表达。查询处理器54以可由查询优化器56高效读取的方式构造查询树。查询优化器56针对输入查询生成执行计划。与每个执行计划相关联的是用于执行计划的成本,并且查询优化器56确定所选择的具有最小成本的计划。所选择的计划由查询执行引擎58使用来执行输入查询。
数据库服务器12可以利用外部子重分区(OCR)方案来根据输入查询执行嵌套连接操作。因此,查询优化器56包括查询评估组件62,查询评估组件62确定给定的嵌套连接操作是否是OCR方案的适合候选者。例如,评估组件62可以检查与连接操作相关联的谓词,以保证操作仅使用相等性比较(equality comparison)。如果连接操作不适合于OCR方案,则可以应用其它适合的优化程序来执行所请求的连接操作。
如果确定连接操作适合于OCR方案的应用,则重分区组件64发起对连接的外部数据源的重分区。例如,与用于对内表进行分区的散列函数相同的散列函数可以用来根据由从外部数据源的行中读取的连接键得到的分区键,对散列值进行计算。可以在查询计划中放置交换运算符,以将具有给定散列值的行选路至(route)与相应内表分区相关联的连接过程。偏斜标识组件65可以标识以高频率出现的用于外部数据源的分区键值。例如,偏斜标识组件65可以收集与用作分区键的列相对应的列的统计信息,以标识在外表中以高于阈值的频率出现的值,本文中将这些值称为偏斜分区键值。本文中,将外表中包含这些偏斜分区键值的行称为偏斜行。可以将所标识的偏斜分区键值提供给查询执行引擎58。
查询执行引擎58执行连接操作,以提供包括来自外部数据源和内表的数据的合并表。在多个连接过程中并行执行连接操作,每个连接过程处理来自内表的相关联分区的行。因此,分区和其它连接过程之间的过多通信是不必要的。将来自外部数据源的行选路至被选择作为行分区键值的函数的连接过程。
为了避免由在外部数据源中存在偏斜的分区键值而导致的问题,查询执行引擎58可以包括偏斜处理组件66,偏斜处理组件66被编程为改变来自外部数据源的已被标识为偏斜行的行的选路。例如,偏斜处理组件66可以在针对给定查询执行的多个连接过程之间基本随机地对偏斜行进行选路。可替代地,偏斜处理组件66可以针对每个偏斜行值选择一组预定的连接过程。例如,对于给定行值,可以选择每第q个连接过程,其中q是大于1的整数。这具有如下优势:限制将在内表的给定分区和一组连接过程之间形成的可能关联的数量,从而保持OCR嵌套连接的低复杂度。所选择的连接过程的数量可以随由行值代表的偏斜程度而变化。
查询执行引擎58可以进一步包括缓存维护组件68,缓存维护组件68被编程为维护与每个连接过程相关联的探测缓存(probe cache)。在连接操作期间由内表的探测返回的行可以存储在缓存中,以在从外部数据源中收到具有重复连接键的探测时被再使用。作为示例,根据第二机会启发管理每个探测缓存,其中当给定行会被选择用于缓存内的替换且仅选择之前被标志的条目来替换时,对给定行进行标志。
示例系统10能够显著提高大规模并行数据库体系结构中的嵌套连接操作的效率。例如,通过对外部数据源进行重分区,系统10将系统资源消耗量从O(n*m)有效地降低至O(n),其中n表示连接过程的数量并且m表示内表的分区数量。这允许使用OCR嵌套连接方案对数据库表23执行更多同时的查询。进一步,示例OCR方案通过在编译期间识别潜在的偏斜分区键值并将有效行分配方法构建到执行方案内,减轻由数据重分区引起的可能数据偏斜。例如,在查询执行期间,偏斜的行被检测和选路至指定的连接运算符,这样的连接运算符的数量被限制为保持OCR方案的益处。此外,OCR方案将探测缓存构建在每个连接运算符中,以将探测结果缓存到内表中,这允许对于待缩短的相同连接键值对内表进行反复探测。
图2是图示使用用于执行嵌套连接的外部子重分区(OCR)方案的查询计划100的一个示例的示意图。在所图示的嵌套连接方案中,查询优化器已经在连接过程106、107和108与外部源110之间插入交换运算符102、103和104,请求应当将外部源重分区来匹配内表120。在图2的示例中,外部源包括多个分区112、113和114。
作为示例,每个交换运算符102、103和104可以使用与对内表120进行分区所使用的那个散列函数相同的散列函数,以计算从来自外部数据源110的行中读取的分区键值的散列值。然后,根据这些行的散列值,将这些行选路至连接过程106、107和108。在图2的示例方案中,建立连接过程106、107和108,使得内表120的每个分区122、123和124具有相对应的连接过程。由于与内表120中的行相同地对来自外部源110的行进行散列(例如通过使用具有与内表分区键相对应的列的相同的散列函数),所以通过连接过程接收的所有行可以相对于内表的匹配分区122、123和124被评估。因此,每个分区122、123和124主要与一个连接过程106、107和108通信。因此,系统资源的复杂度有效地减少至O(n),其中n是内表120的分区122-124的数量。
当均匀地分配与外部源110中的行相关联的散列值时,每个连接过程106、107和108见到大约相同数量的行。然而,如前面介绍的,各个分区表键值在外表中常常以明显更高的频率出现。例如,偏斜的行可能由于外部源110中特定地区、公司或部门的显现而出现,这将根据被存储的数据用途而变化。在这种情况下,可以将大量的行送往相同的连接过程(例如106),这迫使这样的连接过程处理显著更多的行并使查询的执行缓慢。为了避免这种处理失衡,OCR方案事先检测偏斜的行并且将它们均匀地分配给多个连接过程。例如,交换节点102、103和104能够将每个偏斜的行发送至随机选择的连接过程或发送至由每第q个连接过程组成的集合,其中q是大于1的整数。因此,将理解,尽管内表120的给定分区(例如122)通常仅仅与其关联的连接过程(例如106)通信,但是如果该分区将被偏斜的行探测到,那么该分区能够加入与除其关联的连接过程以外的连接过程的受限通信。偏斜处理连接运算符可以对所有偏斜值相同,或者可以对每个偏斜值使用不同的偏斜处理连接运算符。
为了进一步减少从连接过程至内表120的探测的数量,OCR连接方案在每个连接运算符106、107和108与其相关联的内表分区122、123和124之间使用多个探测缓存132、133和134。例如,对于可能存在来自外部数据源的重复探测的查询,在连接过程(例如106)和相关联的内表之间插入探测缓存132、133和134。在查询的执行期间,将内表120的每个探测存储在缓存中直到被新的数据强迫离开缓存。作为示例,根据第二机会启示管理每个缓存132、133和134。例如,缓存可以按照被第二机会启示改变的先进先出(FIFO)而操作,其中最近访问的行被免除从缓存中移除。
鉴于上面描述的前述结构特征和功能特征,示例方法将参考图3得到更好的理解。尽管为了简化说明,将图3的方法示出和描述为顺序地执行,但是要理解和明白,在其它示例中,一些动作可以以不同的顺序发生和/或与本发明中示出和描述的顺序同时发生。
图3图示用于关于相关联的连接键对内表和外部数据源执行并行嵌套连接操作的方法200。在一个实现中,当请求连接操作的SQL查询被收到时,该查询被评估为确定嵌套连接方法是否会是有效的。例如,可以检查与连接操作相关联的谓词,以保证操作仅使用相等性比较,并且所有内表分区键列通过相等性比较连接谓词被索引。如果查询不适合于方法200,则可以使用另一连接方法。
在202,针对来自外表的与内表的分区键相对应的列,使用用于对内表进行分区的相同的散列函数,来计算散列值。在204,针对内表的多个分区中的每个分区,建立连接过程。内表的每个分区代表内表中的行的多个分区键值。
在206,根据外部数据源的与内表的分区键相对应的列的值,将来自外部数据源的每行选路至连接过程。例如,每行可以被选路至与内表分区相关联的连接过程。在一个示例中,可以通过将多个交换操作插入与连接操作相关联的查询计划中,而实现选路。能够通过偏斜处理方法执行选路来避免连接过程之一的过载。例如,可以确定,与内表分区键相对应的外表列的值在外部数据源中是否以高于阈值的频率出现。如果频率超过阈值,则认为该值是偏斜的并且将该值遍布多个连接过程分配,以避免使任何连接过程过载。将来自外部数据源的每个偏斜行选路至来自一组连接过程的多个连接过程。例如,多个连接过程可以被选择为来自一组连接过程的每第q个连接过程(其中q是大于1的整数),或者可以从一组连接过程中随机选择。否则,只有当确定在分区函数中使用的列(即与内表分区键对应的列)的值在外部数据源中以低于阈值的频率出现,来自外部数据源的行才被选路至与外部数据源的分区函数相关联的连接过程。
在208,对内表进行探测,以返回来自内表的具有与来自外部数据源的行相关联的连接键值的一组行。在一个示例中,在连接过程处将探测结果缓存在探测缓存中。可以根据第二机会启示对每个缓存进行管理,其中缓存可以以被第二机会启示修改的先进先出(FIFO)布置被操作,在该先进先出(FIFO)布置中最近访问的行被免除从缓存中移除。在210,连接来自外部数据源的行和来自内表的行,以形成合并表中的一组行。在212,可以向用户显示合并表的表示。
图4是图示具有能够实现在图1至图3中公开的本发明示例的硬件组件的示例性系统300(例如图1中图示的数据库系统)的示意框图。系统300可以包括各种系统和子系统。系统300可以是个人计算机、膝上型计算机、工作站、计算机系统、装置、专用集成电路(ASIC)、服务器、服务器刀片中心、服务器群(serverfarm)等。
系统300可以包括系统总线302、处理单元304、系统存储器306、存储器设备308和310、通信接口312(例如网络接口)、通信链路314、显示器316(例如显示屏)以及输入设备318(例如键盘和/或鼠标)。系统总线302可以与处理单元304和系统存储器306通信。附加的存储器设备308和310(例如硬盘驱动器、服务器、独立数据库或其它非易失性存储器)也可以与系统总线302通信。系统总线302可操作地将处理单元304、存储器设备306-310、通信接口312、显示器316和输入设备318互联。在一些示例中,系统总线302还可操作地将像通用串行总线(USB)端口这样的附加端口(未示出)互联。
处理单元304可以是计算设备且可以包括专用集成电路(ASIC)。处理单元304执行一组指令来实现本发明中公开的示例的操作。处理单元可以包括处理核。
附加的存储器设备306、308和310可以存储数据、程序、指令、以文本或编译表格形式的数据库查询以及操作计算机可能需要的任何其它信息。存储器306、308和310可以被实现为计算机可读介质(集成的或可移除的),例如存储卡、磁盘驱动器、光盘(CD)或可经由网络访问的服务器。在特定的示例中,存储器306、308和310可以包括文本、图像、视频和/或音频,它们中的部分可以用于不同人。
此外,存储器设备308和310可以充当数据库或数据存储装置。此外或可替代地,系统300可以通过通信接口312访问外部数据源或查询源,通信接口312可以与系统总线302和通信链路314通信。
在操作中,系统300可以用来实现数据库系统,该数据库系统响应于适当的数据库查询根据外部子重分区执行内嵌套连接操作,例如关于图1至图3示出和描述的嵌套连接操作。可以根据包括SQL在内的各种查询数据库协议对查询进行格式化。根据特定示例,用于实现实时分析系统的计算机可执行逻辑驻留在系统存储器306和存储器设备308、310中的一个或多个上。处理单元304执行来自系统存储器306和存储器设备308、310的一个或多个计算机可执行指令。本发明中使用的术语“计算机可读介质”指参与向处理单元304提供指令以用于执行的介质。
上面已描述的是示例。当然,不可能描述组件或方法的每种可想象的组合,但是本领域普通技术人员将理解,多种其它的组合和排列是可能的。因此,本发明旨在包含落入包括所附权利要求的本申请范围内的所有这种改变、修改和变型。此外,当公开内容或权利要求记载“一”、“一个”、“第一”或“另一”元件或者其等同物时,其应当被解释成包括一个或一个以上的这种元件,这既不要求也不排除两个或两个以上的这种元件。

Claims (15)

1.一种用于执行嵌套连接操作的方法,包括:
使用用来对内表进行分区的散列函数,计算(202)外部数据源的分区键值,所述分区键值代表相关联连接键中的各个行值;
针对所述内表的多个分区中的每个分区建立(204)连接过程,所述内表的给定分区代表多个分区键值;
根据来自所述外部数据源的每行的相关联分区键值,将来自所述外部数据源的每行选路(206)至连接过程,使得每行被选路至与代表各个行的分区键值的分区相关联的连接过程;
对所述内表进行探测(208),以返回来自所述内表的具有与来自所述外部数据源的行相关联的连接键值的行;以及
连接(210)来自所述外部数据源的行和从所述内表返回的行,以形成合并表中的行。
2.根据权利要求1所述的方法,进一步包括:
在所述连接过程(108)处将从所述内表(120)返回的行缓存在探测缓存(134)中。
3.根据权利要求2所述的方法,进一步包括:
经由缓存替换策略管理所述探测缓存(134)。
4.根据权利要求1所述的方法,进一步包括:
将多个交换操作(102、103、104)插入与所述连接过程(108)相关联的查询计划中,以便于将来自所述外部数据源(110)的每行选路至相对应的连接过程(108)。
5.根据权利要求1所述的方法,其中将来自所述外部数据源(110)的每行选路进一步包括:
如果确定与来自所述外部数据源(110)的行相关联的所述分区键值在所述外部数据源中以小于阈值的频率出现,则将来自所述外部数据源(110)的行选路至所述连接过程(108)。
6.根据权利要求5所述的方法,其中所述连接过程(108)是一组连接过程(106、107、108)中的第一连接过程,并且将来自所述外部数据源(110)的行选路进一步包括:
如果确定与来自所述外部数据源的行相关联的所述分区键值在所述外部数据源中以大于阈值的频率出现,则将该行选路至来自所述一组连接过程的多个连接过程。
7.根据权利要求6所述的方法,其中从所述一组连接过程(106、107、108)中随机选择所述多个连接过程。
8.根据权利要求6所述的方法,其中将所述多个连接过程(106、107)选择为来自所述一组连接过程的每第q个连接过程,其中q是大于1的整数。
9.根据权利要求1所述的方法,进一步包括:
接收请求所述连接过程(108)的SQL查询;以及
评估所述SQL查询,以确定使用用来对所述内表进行分区的分区函数计算所述外部数据源的分区键值是否会是有效的。
10.根据权利要求9所述的方法,其中评估所述SQL查询进一步包括:
检查与所述连接过程相关联的谓词,以确保所述操作包括相等性比较。
11.一种存储用于执行嵌套连接操作的可执行指令的非瞬态计算机可读介质,所述可执行指令包括:
查询优化器(56),包括:
查询评估组件(62),用于评估SQL查询,以确定使用用来对内表中的连接列计算分区键值的分区函数计算外部数据源的连接键的分区键值是否会是有效的;和
重分区组件(64),如果确定计算所述分区键值是有效的,则所述重分区组件(64)使用所述分区函数对外表进行重分区,并且针对所述内表的多个分区中的每个分区建立连接过程,所述内表的给定分区代表多个分区键值;以及
查询执行引擎(58),用于根据来自所述外部数据源的每行的相关联分区键值,将来自所述外部数据源的每行选路至连接过程,使得每行被选路至与代表该行的所述分区键值的分区相关联的连接过程,探测所述内表以返回来自所述内表的具有与来自所述外部数据源的行相关联的所述连接键值的行,并且连接来自所述外部数据源的行和来自所述内表的行以形成合并表中的行,所述查询执行引擎进一步包括:
偏斜处理组件(66),如果与来自所述外部数据源的行相关联的所述分区键值在所述外部数据源中以大于阈值的频率出现,则所述偏斜处理组件(66)改变来自所述外部数据源的行的选路;和
缓存维护组件(68),用于在所述连接过程处将来自所述内表的行缓存在探测缓存中。
12.一种系统,包括:
存储器(26),用于存储关于相关联的连接列对内表和外部数据源执行嵌套连接操作的可执行指令,所述可执行指令包括:
查询优化器(56),用于使用与所述内表相关联的散列函数对外表进行重分区,并且针对所述内表的多个分区中的每个分区建立连接过程,所述内表的给定分区代表多个散列值;和
查询执行引擎(58),用于根据相关联的分区键值,将来自所述外部数据源的每行选路至连接过程,使得每行被选路至与代表该行的所述分区键值的分区相关联的连接过程,探测所述内表以返回来自所述内表的具有与来自所述外部数据源的行相关联的所述连接键值的行,并且连接来自所述外部数据源的行和来自所述内表的行以形成合并表中的行;以及
处理器(18),用于执行所述存储器中的可执行指令。
13.根据权利要求12所述的系统,所述查询优化器(56)进一步包括:
查询评估组件(62),用于评估SQL查询,以确定使用与所述内表相关联的散列函数计算所述外部数据源的散列值是否会是有效的。
14.根据权利要求12所述的系统,所述查询执行引擎(58)进一步包括:
偏斜处理组件,如果与来自所述外部数据源的行相关联的所述散列值在所述外部数据源中以大于阈值的频率出现,则所述偏斜处理组件改变来自所述外部数据源的行的选路。
15.根据权利要求12所述的系统,所述查询执行引擎(58)进一步包括:
缓存维护组件(68),用于在所述连接过程处将来自所述内表的行缓存在探测缓存中。
CN2010800704936A 2010-12-03 2010-12-03 用于执行嵌套连接操作的系统和方法 Pending CN103262062A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/058817 WO2012074529A1 (en) 2010-12-03 2010-12-03 Systems and methods for performing a nested join operation

Publications (1)

Publication Number Publication Date
CN103262062A true CN103262062A (zh) 2013-08-21

Family

ID=46172200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800704936A Pending CN103262062A (zh) 2010-12-03 2010-12-03 用于执行嵌套连接操作的系统和方法

Country Status (4)

Country Link
US (1) US20130232133A1 (zh)
EP (1) EP2646928A4 (zh)
CN (1) CN103262062A (zh)
WO (1) WO2012074529A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108133043A (zh) * 2018-01-12 2018-06-08 福建星瑞格软件有限公司 一种基于大数据的服务器运行日志结构化存储方法
CN115114328A (zh) * 2022-08-29 2022-09-27 北京奥星贝斯科技有限公司 针对分布式数据库生成查询计划的方法及装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417611B2 (en) 2010-05-18 2019-09-17 Salesforce.Com, Inc. Methods and systems for providing multiple column custom indexes in a multi-tenant database environment
US10152511B2 (en) * 2012-09-14 2018-12-11 Salesforce.Com, Inc. Techniques for optimization of inner queries
US10585896B2 (en) * 2013-03-12 2020-03-10 Red Hat, Inc. Managing data in relational database management system
US9305074B2 (en) * 2013-06-19 2016-04-05 Microsoft Technology Licensing, Llc Skew-aware storage and query execution on distributed database systems
WO2015027425A1 (zh) 2013-08-29 2015-03-05 华为技术有限公司 存储数据的方法和装置
US9372907B2 (en) * 2013-11-26 2016-06-21 Sap Se Table placement in distributed databases
US9830346B2 (en) 2013-11-26 2017-11-28 Sap Se Table redistribution in distributed databases
US9569493B2 (en) 2013-12-31 2017-02-14 International Business Machines Corporatin Avoidance of intermediate data skew in a massive parallel processing environment
US11809451B2 (en) 2014-02-19 2023-11-07 Snowflake Inc. Caching systems and methods
US10372574B1 (en) * 2014-06-17 2019-08-06 Amazon Technologies, Inc. Skew detector for data storage system
US10180961B2 (en) 2014-12-17 2019-01-15 Teradata Us, Inc. Remote nested join between primary access module processors (AMPs)
US9959332B2 (en) * 2015-01-21 2018-05-01 Futurewei Technologies, Inc. System and method for massively parallel processor database
US10127272B2 (en) * 2016-03-22 2018-11-13 Oracle International Corporation Modifying a database query
US10565201B2 (en) * 2016-11-04 2020-02-18 International Business Machines Corporation Query processing management in a database management system
US10649996B2 (en) * 2016-12-09 2020-05-12 Futurewei Technologies, Inc. Dynamic computation node grouping with cost based optimization for massively parallel processing
CN107291881A (zh) * 2017-06-19 2017-10-24 北京计算机技术及应用研究所 基于HBase的海量日志存储和查询方法
US11216461B2 (en) * 2019-05-08 2022-01-04 Datameer, Inc Query transformations in a hybrid multi-cloud database environment per target query performance
US11036733B2 (en) 2019-08-20 2021-06-15 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Method, apparatus, system, server, and storage medium for connecting tables stored at distributed database
CN111857681B (zh) * 2020-06-08 2021-04-30 北京大学 一种c++系统的软件定义化关键函数定位与提取方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218123A1 (en) * 2005-03-28 2006-09-28 Sybase, Inc. System and Methodology for Parallel Query Optimization Using Semantic-Based Partitioning
CN1867912A (zh) * 2003-08-22 2006-11-22 甲骨文国际公司 在关系数据库系统中用于使数据稠密的dml语句
US20080215544A1 (en) * 2007-03-02 2008-09-04 Microsoft Corporation Systems and Methods for Modeling Partitioned Tables as Logical Indexes
US20090063527A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Processing of database statements with join predicates on range-partitioned tables
CN101436192A (zh) * 2007-11-16 2009-05-20 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备
US7685109B1 (en) * 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH077422B2 (ja) * 1991-08-23 1995-01-30 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US6112198A (en) * 1997-06-30 2000-08-29 International Business Machines Corporation Optimization of data repartitioning during parallel query optimization
US6609131B1 (en) * 1999-09-27 2003-08-19 Oracle International Corporation Parallel partition-wise joins
US7020661B1 (en) * 2002-07-10 2006-03-28 Oracle International Corporation Techniques for pruning a data object during operations that join multiple data objects
US8190610B2 (en) * 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing
US8078610B2 (en) * 2008-03-26 2011-12-13 Teradata Us, Inc. Optimization technique for dealing with data skew on foreign key joins
US7730055B2 (en) * 2008-06-23 2010-06-01 Oracle International Corporation Efficient hash based full-outer join

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1867912A (zh) * 2003-08-22 2006-11-22 甲骨文国际公司 在关系数据库系统中用于使数据稠密的dml语句
US20060218123A1 (en) * 2005-03-28 2006-09-28 Sybase, Inc. System and Methodology for Parallel Query Optimization Using Semantic-Based Partitioning
US7685109B1 (en) * 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service
US20080215544A1 (en) * 2007-03-02 2008-09-04 Microsoft Corporation Systems and Methods for Modeling Partitioned Tables as Logical Indexes
US20090063527A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Processing of database statements with join predicates on range-partitioned tables
CN101436192A (zh) * 2007-11-16 2009-05-20 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108133043A (zh) * 2018-01-12 2018-06-08 福建星瑞格软件有限公司 一种基于大数据的服务器运行日志结构化存储方法
CN115114328A (zh) * 2022-08-29 2022-09-27 北京奥星贝斯科技有限公司 针对分布式数据库生成查询计划的方法及装置
CN115114328B (zh) * 2022-08-29 2022-10-28 北京奥星贝斯科技有限公司 针对分布式数据库生成查询计划的方法及装置

Also Published As

Publication number Publication date
WO2012074529A1 (en) 2012-06-07
EP2646928A4 (en) 2016-11-09
US20130232133A1 (en) 2013-09-05
EP2646928A1 (en) 2013-10-09

Similar Documents

Publication Publication Date Title
CN103262062A (zh) 用于执行嵌套连接操作的系统和方法
US10922053B2 (en) Random number generator in a parallel processing database
US7849073B2 (en) Load balancing for complex database query plans
US10218808B2 (en) Scripting distributed, parallel programs
US10585887B2 (en) Multi-system query execution plan
EP2608074B1 (en) Systems and methods for merging source records in accordance with survivorship rules
US20190012144A1 (en) Random number generator in a parallel processing database
US20170060944A1 (en) Optimized inequality join method
CN102844754B (zh) 用于对并行数据库管理系统的外连接的系统和方法
US10885034B2 (en) Data query method and apparatus, and database system
CN104123374A (zh) 分布式数据库中聚合查询的方法及装置
US20160253402A1 (en) Adaptive data repartitioning and adaptive data replication
WO2010042238A1 (en) System and method for data warehousing and analytics on a distributed file system
CN105335403A (zh) 数据库访问方法及装置、数据库系统
US20180075077A1 (en) Method and Device for Partitioning Association Table in Distributed Database
US20160328445A1 (en) Data Query Method and Apparatus
US11100087B2 (en) Data tokenization system maintaining data integrity
CN105556474A (zh) 管理数据操作的存储器和存储空间
US11775544B2 (en) Feature sets using semi-structured data storage
US11226986B2 (en) Data table partitioning management method and apparatus
CN108140022A (zh) 数据查询方法和数据库系统
JPWO2013175611A1 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
Kuzochkina et al. Analyzing and Comparison of NoSQL DBMS
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
US10437806B2 (en) Database management method and information processing apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130821