CN104750770B - 将联接操作处理时间最小化的计算机实现的方法和系统 - Google Patents
将联接操作处理时间最小化的计算机实现的方法和系统 Download PDFInfo
- Publication number
- CN104750770B CN104750770B CN201410679709.9A CN201410679709A CN104750770B CN 104750770 B CN104750770 B CN 104750770B CN 201410679709 A CN201410679709 A CN 201410679709A CN 104750770 B CN104750770 B CN 104750770B
- Authority
- CN
- China
- Prior art keywords
- data
- connection
- computer
- distribution
- database systems
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000009826 distribution Methods 0.000 claims abstract description 62
- 230000006870 function Effects 0.000 claims description 57
- 238000003860 storage Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 3
- 238000005070 sampling Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000005194 fractionation Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及将联接操作处理时间最小化的计算机实现的方法和系统。提供了用于基于数据库系统的估计的联接的表格分布,在数据库系统内将联接操作处理时间最小化的方法。该方法包含由一个以上的处理器估计联接的表格中的数据的值分布,其中,所述联接的表格是数据库系统的表格的两个实例之间的联接操作的结果;该方法还包括由所述一个以上的处理器确定用于在估计的值分布的属性的至少一个范围进行分区的边界,其中,在估计的值分布的属性的至少一个范围进行分区的边界与联接的表格的相同数量的行对应。方法还包含由所述一个以上的处理器确定所述属性的范围的至少一个确定的分区向所述数据库系统的处理单元的至少一个分配。
Description
技术领域
本发明一般涉及数据库计算系统的领域。更具体而言,本发明涉及用于避免在大规模并行处理(MPP)环境中使用范围分区的中间数据偏移处理(intermediate data skewprocessing)的方法和系统,以将数据集中在处理单元内用于进一步的处理。
背景技术
数据库引擎(或者存储引擎)是底层软件组件,数据库管理系统(DBMS)使用其从数据库计算系统创建、读出、更新和删除(CRUD)数据。数据库引擎还能够适于准备执行计划,能够在执行数据库引擎的查询之前优化。该数据库引擎的优化基于若干处理的信息而执行。此外,在数据库计算系统的大规模并行处理(MPP)环境下,MPP环境的重要方面是在数据库计算系统的所有处理单元之间分发数据库计算系统的数据。在MPP环境中,在数据库计算系统的单个查询执行期间,数据能够分发若干次。例如,数据库计算系统的联接(join)操作要求数据再分发的处理。例如,联接算子是在关系数据库中可用的设定运算之一。联接操作指明如何在数据库计算系统的查询中将表格相关。此外,在查询执行期间在数据库计算系统的处理单元之间的该数据的再分发可能导致再分发的数据的中间数据偏移。中间数据偏移涉及如下情况:数据库计算系统的一个处理单元比数据库计算系统的其他处理单元接收了显著更多的数据,并且作为结果,数据库计算系统分配额外的时间来完成数据库计算系统的处理操作。
发明内容
在本发明的一个实施例中,提供了用于基于数据库系统的估计的联接的表格分布,在数据库系统内将联接操作处理时间最小化的计算机实现的方法。该方法包含由一个以上的处理器估计联接的表格中的数据的值分布,其中,所述联接的表格是数据库系统的表格的两个实例之间的联接操作的结果;该方法还包括由所述一个以上的处理器确定用于在估计的值分布的属性的至少一个范围进行分区的边界,其中,在估计的值分布的属性的至少一个范围进行分区的边界与联接的表格的相同数量的行对应。方法还包含由所述一个以上的处理器确定所述属性的至少一个范围的确定的分区向所述数据库系统的处理单元的至少一个分配。
在又一个实施例中,提供了用于基于数据库系统的估计的联接的表格分布,在数据库系统内将联接操作处理时间最小化的计算机系统。计算机系统包括一个以上的处理器、一个以上的计算机可读存储器、一个以上的计算机可读有形存储设备、以及存储在所述一个以上的存储设备中的至少一个上的程序指令,其由所述所述一个以上的处理器中的至少一个经由所述一个以上的存储器中的至少一个执行。计算机系统还包括估计联接的表格中数据的值分布的程序指令,其中,联接的表格是在数据库系统的表格的两个实例之间的联接操作的结果。计算机系统还包括确定用于在估计的值分布的属性的至少一个范围进行分区的边界的程序指令,其中,在估计的值分布的属性的至少一个范围进行分区的边界与联接的表格的相同数量的行对应。计算机系统还包括确定将属性的至少一个范围的确定的分区向数据库系统的处理单元的至少一个分配的程序指令。
在又一个实施例中,提供了用于基于数据库系统的估计的联接的表格分布,在数据库系统内将联接操作处理时间最小化的计算机程序产品。计算机程序产品包括一个以上的计算机可读有形存储设备、以及存储在所述一个以上的存储设备程序中的至少一个上的指令。计算机程序产品程序还包括估计联接的表格中数据的值分布的指令,其中,联接的表格是在数据库系统的表格的两个实例之间的联接操作的结果。计算机程序产品的程序还包括确定用于在估计的值分布的属性的至少一个范围进行分区的边界的指令,其中,在估计的值分布的属性的至少一个范围进行分区的边界与联接的表格的相同数量的行对应。计算机程序产品还包括确定将属性的至少一个范围的确定的分区向数据库系统的处理单元的至少一个分配的指令。
附图说明
本发明的新颖特征记载在所附的权利要求中。本发明将参考本发明的结合附图读出时的下面的具体实施方式来最好理解,其中,同样的附图标记表明同样的组件,并且:
图1是依据本发明的实施例的、用于向数据库系统5发送请求的大规模并行处理(MPP)数据仓库环境1的客户端服务器的常规架构。
图2绘出了概要流程图,绘出数据库系统内的数据流。统计单元11依据本发明的实施例存储统计信息。
图3绘出依据本发明的实施例的、由最常用的内联接操作联接第一和第二数据列R,S的示例。
图4示出依据本发明的实施例的、示出由左外联接操作联接第一和第二数据列R,S的示例。
图5是绘出依据本发明的实施例的、由查询优化器程序在MPP数据仓库环境内执行处理节点而执行的步骤的流程图。
图6是绘出依据本发明的实施例的、由查询优化器准备执行用于MPP数据仓库环境的数据库的查询的计划而执行的步骤的流程图。
图7是绘出依据本发明的实施例的、由查询优化器基于MPP数据仓库环境的估计的联接的表格分布数据库系统5,在数据库系统5内执行将联接操作处理时间最小化的步骤的流程图。
图8是依据本发明的实施例的计算机系统的框图。
具体实施方式
本发明的实施例包括用于将中间数据偏移最小化并将在结构化查询语言(SQL)联接操作处理期间在大规模并行处理(MPP)数据仓库环境内在处理单元之间交换的数据量最小化的方法。根据至少一个实施例,本发明包括用于依据本发明的实施例在MPP数据仓库环境的处理单元内的数据分发的范围分区功能(例如自适应哈希函数)。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
现在依据附图说明本发明。参考图1,示出了用于向数据库系统5发送请求的大规模并行处理(MPP)数据仓库环境1的客户端服务器的常规架构。多个客户端2a-2e连接至网络3。此外,用作数据库客户端的服务器4也连接至网络3。可以由若干子网络组成的网络3能使客户端2a-2e与服务器4互相彼此通信。例如,客户端2a向服务器4发送请求用于通过网络3接入数据库系统5。服务器4可以从多个客户端接收多个请求,并典型地以收到的顺序、或者在其他情况下根据预定义的优先级策略对其处理。在服务器4中排队的请求等待轮到其由服务器4处理。一旦由服务器4处理,对请求的响应发送至客户端2a-2e。进入关系数据库系统的请求可以导致执行多个操作。多个联接操作尤其可以以若干不同的顺序执行而不会改变查询的结果,但是执行顺序可能以巨大的方式影响查询性能。因此,依据本发明的实施例的、例如包含数据库系统5的关系数据库系统典型地包括用于优化多个联接操作的组件,称作查询优化器(10),即确定导致最短执行时间的联接操作的适当顺序,如下文具体说明的那样。
网络3包含能够在MPP数据仓库环境1内在连接在一起的各种设备和计算机之间提供通信链路的任何种类的一个以上的网络。网络3还能够包含连接,诸如有线通信链路、无线通信链路、或者光纤电缆。网络3还能够实现为多个不同类型的网络,例如包含局域网(LAN)、广域网(WAN)、或者分组交换电话网络(PSTN)、或者一些其他网络系统。例如,MPP数据仓库环境1能够利用互联网,网络3代表网络的世界范围集合。根据本发明的各方面,根据本发明的实施例的使用的术语“互联网”是指使用某些协议(诸如TCP/IP协议和可能的其他协议,诸如对于组成万维网(Web)的文档的超文本标记语言(HTML)的超文本传输协议(HTTP))的网络或者多个网络。
数据库系统5用于选择适当顺序的最重要的一条信息是:估计在联接操作之后作为结果的表格(下文还被称为联接的表格)的行的数量。在下文中,第一表格至少包括由R代表的第一数据列,并且第二表格至少包括由S代表的第二数据列。作为联接操作的结果的联接的表格基于R和S被标注为T。联接的表格的行的数量基本上受数据列R、S的行的数量以及表格内数据的分布、即数据列R、S内不同值的数量或者频率影响。
根据本发明,基于值分布来估计联接的表格的行的数量,例如使用密度分布函数f(x)、g(x),其中,第一值分发/密度分布函数f(x)代表第一数据列R内的数据的分布,并且第二值分布/密度分布函数g(x)代表第二数据列S内的数据的分布。密度分布函数f(x)、g(x)是可能值的整个域上的可积函数(integrable function)。假定密度分布函数f(x)已被定义,获得满足某些标准的相关表格R的行的确切数量,例如
xmin<x<xmax能够通过对f(x)积分来计算:
例如密度分布函数f(x)、g(x)的近似值分布能够通过使用查询反馈算法来导出。首先,假定了数据跨xmin与xmax之间的所有值均匀分布。所以,开始f(x)由常数值代表,其能够计算如下:
其中“total number of rows in the table”表示表格中的行的总数,“const.”表示常数。
在基于表格R执行查询之后,即从属性<值1(value 1)(值1∈[xmin;xmax])的R选择...,能够推断关于含在范围x<值1内的行k的确切数量的信息。所以,密度分布函数f(x)通过解析下面的方程来评价(假定与子方程线性无关):
使用查询反馈算法,每次执行新的查询时,新条件增加至定义密度分布的方程。以一般化的方式,公式能够写为:
换言之,通过使用查询反馈算法,确定确切的密度分布函数f(x)的单值。这些值的反馈被用于收集,并优选地改善密度分布函数f(x)。为了导出需要用于计算行的数量的可积函数(参照公式1),确切的密度分布函数f(x)以(M-1)阶使用M导出的值由多项式近似。多项式可以具有下面的结构:
f(x)=a0+a1x+a2x2+…+aM-1xM-1 (公式5)
本领域的技术人员能够基于使用上述的查询反馈算法导出的一组值M来获得多项式。第二数据列S的密度分布函数g(x)通过使用查询反馈算法以相同的方式确定。作为结果,含有某些范围的数值的列R,S的行的数量能够通过对各范围内的各密度分布函数f(x)、g(x)积分来估计。影响联接的表格T的行的数量的第二方面是要联接的第一和第二数据列R,S内的唯一值u1,u2的数量。第一和第二数据列R,S的行的数量能够通过使用数据的采样,通过确定数据的采样内的唯一值u1,u2的数量,并通过使用对于采样(即对于数据的子集)收集的信息来推断整个列内的唯一值的数量而估计。优选地,在查询执行期间对数据采样,即正好在MPP数据仓库环境1的查询执行期间收集信息。
根据本发明的各方面,密度函数是在数据库系统5的特定期间代表计算行的数量的一个方式。此外,根据至少一个方面,假定处理单元级别统计是可用的,并由数据库系统5的查询优化器执行。例如,以该方式,数据库系统5适应来估计在一定期间内有多少表格行存储在数据库系统5的特定处理单元。具体而言,数据库系统5的估计允许对一定期间内有多少表格的行存储在数据库系统5的特定处理单元进行估计计算。这能够以下面的方式呈现,作为密度函数的矢量:
其中,公式6表示为,其中:A是被用作分发的哈希秘钥的表格的列的子集。哈希函数(HashFunction)或者自适应哈希函数是数据库系统5的数据分区机制,允许MPP数据仓库环境1内的数据库系统5的数据再分发,其中,哈希函数适应来均匀分布数据库系统5的处理节点的值。HashFunction(公式6)和′A′唯一确定了数据库系统5的处理单元内的数据分发。此外,n是可用于计算数据库系统5的处理单元的数量,并且f_i是对于存储在处理单元数i的数据的密度函数。此外,根据至少一个实施例,假定存在估计在联接的表格中的数据分布,创建为数据库系统5的两个输入表格内的联接操作的输出的方式。以该方式,能够假定存在对于执行了联接的联接的表格的列估计的密度函数。另外,为了进一步参考,联接的表格的密度函数能够由f_jt标识。
根据本发明的至少一个实施例,基于下面的条件来确定数据库系统5的数据库再分发:第一,确定数据库系统5的每个处理单元上相等的联接的表格行;以及第二,确定在数据库系统5内在联接操作最小之前在处理单元之间交换的数据的量,其中,确定第一和第二条件由数据库系统5的哈希函数代表。哈希函数是如何定义对于范围分区的边界的一个示例。
其中“When”表示“在......时”。
其中,公式7表示为,其中:{z_i}是处理单元数,表格的列的域=[x_1,x_{n+1}],具有下面的两个性质:第一,在将其再分配至两个输入表格,并执行数据库系统5的联接操作系统之后,其将在数据库系统5的每个处理单元上具有将近相等的数量的联接的表格;以及第二,由公式7的哈希函数导致的数据库系统5的数据移动或者数据的利用是最小的。为了对于数据库再分发实现公式7的第一和第二标准或者条件,数据库系统5确定数据库系统5的域的列的拆分,并且数据库系统5还将确定的拆分的期间分配给数据库系统5的特定处理单元。
根据至少一个实施例,数据库系统5基于确定数据库系统5的域拆分来确定列的域的拆分,其中,列的域的每个分区包含来自联接的表格的相同数量的行,基于在执行联接其自身之前数据库系统计算对于联接的表格的密度函数(f_jt)的能力,获得一组n-1(其中n是处理单元的数量)个值{x_i},诸如:
其中,公式8由K表示,K是数据库系统5的每个处理单元的联接的表格的行的平均数:
其中,f_jt是对于联接的表格的密度函数,n是处理单元的数量,并且x_min<...<x_{i-1}<x_i<......<x_max。
根据又一个实施例,数据库系统5将确定的拆分的期间分配给数据库系统5的特定处理单元。例如,确定该期间分配包含在数据库系统5的处理单元之间传输的数据量。如上所述,数据库系统5的哈希函数的对象能够被定义为对于数据库系统5的第一表格列的矢量处理单元级别密度函数(公式10),还有对于第二表格列的矢量处理单元级别密度函数(公式11):
例如,根据至少一个实施例,公式10和公式11适于定义数据库系统5的现有联接操作表格再分发。具体而言,公式10和公式11反映了在数据库系统5的联接操作之前跨处理单元分布的表格的行的处理。例如,需要从处理单元i发送至分配至期间[x_k,x_k+1]的处理单元的来自第一表格的数据量(假定基于在步骤1域拆分中的计算的再分发)能够表示如下:
因此,为了找到将满足对于第一表格的第二条件的期间→处理单元分配,数据库系统5确定(1......n)矢量的该排列(p_1,......,p_n)的下面的总和是最小的:
其中“all rows which need to be moved from each processing unit to therest of the processing units”表示“要从每个处理单元移动到其余处理单元的所有行”,“reduced by all data which will stay in place”表示“由将留在原处的所有数据减少”。
在公式13中,能够注意到排列等于找到对于公式13的哪个第二部分最大的排列。类似地,对于第二表格而言,方程能够最大化如下:
根据本发明的至少一个实施例,上述问题能够以很多不同方式解决。一个方法能够包含对于所有可能的排列的总和计数,其中,数据库系统5的处理单元是恒定的;因此,从计算复杂性观点而言可能的排列的数量也是恒定的。此外,一旦确定了排列,确定的哈希函数能够由下面的方程表示:
公式15的自适应哈希函数能够保证数据库系统5内数据的平均数据再分发,并且允许避免或者减少对数据库系统5的查询执行时间的中间处理偏移影响。例如,公式15的自适应哈希函数能够以下面的方式利用:根据至少一个实施例,考虑数据库系统5的查询优化器程序数据库系统5上如下执行的方案:
从表格1、表格2选择......其中表格1.列1=表格2.列2
在这种情况下,查询优化器程序基于所有处理单元之间的表格1和表格2的计划再分发执行联接操作,使得在列1和列2中具有相同值的来自表格1和表格2的行分别在数据库系统5的相同的处理单元上。例如,常用的方法是使用预定义的哈希函数,其将来自列1和列2的值映射至处理单元的编号(#)。此外,在这种情况下,定义的哈希函数能够将值均匀分布,其中,每个处理单元得到或多或少相同数量的不同值。此外,根据至少一个实施例,在查询执行期间,在数据库系统5的处理单元之间再分配数据之后,执行联接操作。
经常,在该阶段,数据库系统5处理中间处理偏移,其中,中间处理偏移涉及不同值的处理单元,如表格1中绘出的那样:
其中,“TABLE1col1 values”表示“表格1列1数值”,“TABLE2col2 values”表示“表格2列2数值”,“processing units”表示“处理单元”。
能够注意的是表格1的处理单元包含1或者2个不同值,其中,系统正操作处理偏移,第4个处理单元需要处理显著更大量的行。在这种情况下,公式15的自适应的哈希函数能够计算对于联接的表格的密度函数(f_jt),获得一组n-1(其中n是处理单元的数量)个值{x_i},诸如:
其中,公式16表示为,其中:K是每个处理单元的联接的表格的行的平均数:
其中:f_jt是对于联接的表格的密度函数,n是处理单元的数量,并且x_min<...<x_{i-1}<x_i<......<x_max。
总之,如公式15中讨论的那样,自适应哈希函数被定义如下:
根据至少一个实施例,如上所述,自适应哈希函数以保证数据库系统5的平均数据再分发的方式定义,但是从联接的表格观点而言,每个处理单元应该从联接操作的结果得到或多或少相同量的行,并允许避免或者减少对数据库系统5的查询执行时间的中间处理偏移影响。作为示例,考虑基于公式15的自适应哈希函数的表格1和表格2的修改的版本:
根据至少一个实施例,表格2的第4个处理单元基于公式15的哈希函数被再生或者修改。
图2绘出了依据本发明的实施例的概要流程图,绘出数据库系统内的数据流。统计单元11存储统计信息。统计信息能够通过对数据采样或者通过使用查询反馈来导出。例如,统计信息包括通过对数据采样获得的唯一值的数量、或者通过使用查询反馈算法获得的关于行k的确切数量的信息。
统计信息能够被提供给查询优化器10,查询优化器10优选地基于统计信息来收集执行计划。执行计划优选地定义级联的联接操作的顺序以优化查询性能。下面的公开说明了使用统计信息导出关于级联的联接操作的最佳顺序的信息的方式。最终,基于由查询优化器10提供的执行计划来执行查询。
图3绘出依据本发明的实施例的、由最常用的内联接操作联接第一和第二数据列R,S的示例。还示出了作为结果的联接的表格T。为了通过使用内联接操作来估计联接的表格的行的数量,即作为结果的联接的表格T含有含在要联接的两个表格中的所有值,能够使用下面的方程:
其中,x0=a;
xn=b;
xi∈[a,b];
f(x):第一数据列R的密度分布函数;
g(x):第二数据列S的密度分布函数;
b:整合到联接中的各列的开始行和结束行。
各间隔i中的第一数据列R的唯一值的数量;
各间隔i中的第二数据列S的唯一值的数量;
F(a,b):通过在间隔[a,b]中联接第一和第二数据列R,S估计的作为结果的联接的表格T的行的数量。
公式6内的第一项代表对于第一数据列R在[xi;xi+1]部分中每个唯一值的行的平均数,公式6内的第二项代表对于第二数据列S在[xi;xi+1]部分中每个唯一值的行的平均数。第三项用于导出含在第一和第二数据列的[xi;xi+1]序列中的唯一值的数量的最大值。
公式6能够以下面的方式简化:
根据公式6和7,开始行a与结束行b之间的间隔被子分割为n个部分或者片段,其中,n是自然数N。优选地根据第一和第二密度分布函数f(x),g(x)的根、即含有至少第一和第二密度分布函数f(x),g(x)的所有根的一组xi来选择部分。为了调节估计联接的表格T的行的数量的结果的精度,即,将联接估计的精度调节至要求的级别,能够调整部分n的数量。为了实现高精度,部分n的数量增加。相反,如果可接受低精度的联接估计,那么部分n的数量能够减少。
部分n的数量还能够以更复杂的方式确定。密度分布函数的差分能够被用于确定密度分布函数的刚度。优选地下面的方程能够被用于确定下个部分的开始:
其中,xi=下个部分的开始值;
xi-1=实际部分的开始值;
c=在整个域[a,b]为恒定;
f′(x)=密度分布函数f(x)的差分。
使用密度分布函数的刚度来确定部分网格的主要优点在于:具有高刚度密度函数的区域与更小的部分相关,并且具有低刚度的区域由主要部分代表。
图4示出依据本发明的实施例的、示出由左外联接操作联接第一和第二数据列R,S的示例。例如,在左外联接操作中,必须考虑第二数据列S没有行的间隔。换言之,如果存在在第一数据列R具有值A的行,并且在第二数据列S没有该行,作为结果的联接的表格T将含有具有从第二数据列S取出的列中“空(null)”的该行。
为了使用左外联接操作来估计联接的表格T的行的数量,能够使用下面的方程:
公式9(左外联接操作情况)和公式6(内联接操作情况)之间的差异在于在第二最大函数中是值“1”而不是值“0”。该情况的原因在于在各序列[xi;xi+1]的第二表格没有行的情况。在这些情况下,在右侧具有空的来自第一数据列R的所有行应该包含在作为结果的联接的表格T(参照图4)中。
公式9能够以下面的方式简化:
右外联接操作的情况以必须考虑第一数据列R没有行的间隔的方式,类似于左外联接操作。换言之,如果存在第二数据列S中具有值A的行,并且在第一数据列R没有该行,作为结果的联接的表格T将含有具有从第一数据列R取出的空列的该行。
为了使用右外联接操作来估计联接的表格T的行的数量,能够使用下面的方程:
比较公式11与公式10,公式11是公式10的倒像。
另外,能够使用根据本发明的概念来估计跨-联接操作。通过使用跨联接操作,第一数据列R的所有行将联接第二数据列S的所有行。跨联接操作从联接中的列返回行的笛卡尔积。换言之,其将生成组合了来自第一数据列R的每行与来自第二数据列S的每行的多个行。因此,跨联接的表格T的行的数量能够使用下面的方程估计:
其中,x0=y0=a;
xn=ym=b;
xi,yi∈[a,b];
值得注意的是在公式6、7、9、10和11中,唯一值的数量u1,u2≠0。
在本发明的第二实施例中,联接的表格T的行的数量也基于从第一和第二数据列R,S的采样导出的统计信息来确定,但是采样是用于计算采样联接的表格的行的确切数量,是将两者采样联接并将导出的结果推断至整个部分或者域的结果。
为了根据本发明的第二实施例来估计联接的表格T的行的数量,能够使用下面的方程:
其中,x0=a;
xn=b;
xi∈[a,b];
f(x):第一数据列R的密度分布函数;
g(x):第二数据列S的密度分布函数;
b:整合到联接中的各列的开始行和结束行;
从来自第一数据列R的部分[xi;xi+1]随机选择的采样;
从来自第二数据列SR的部分[xi;xi+1]随机选择的采样;
通过对采样和适用联接操作的行的确切数量;
采样内的值的数量;
F(a,b):通过在间隔[a,b]中联接第一和第二数据列R,S而产生的联接的表格的估计的行的数量。
公式13内的第一项代表基于数据的采样的、联接的表格的行的数量的确切计算,第二项代表表达多少次含在第一数据列R的部分[xi;xi+1]的该组数据大于第一数据列R的数据的采样的因子,并且第三项代表表达多少次含在第二数据列S的部分[xi;xi+1]的该组数据大于第二数据列S的数据的采样的因子。第二实施例的主要优点在于:其能够用于所有类型的联接操作。其仅要求基于要估计的各联接操作,计算采样数据的联接。
图5是绘出依据本发明的实施例的、由查询优化器程序在MPP数据仓库环境1内执行处理节点而执行的步骤的流程图。查询优化器10在MPP数据仓库环境1内执行(步骤501)。根据本发明的至少一个实施例,查询优化器10能够基于MPP数据仓库环境1的程序命令行直接在MPP数据仓库环境1内执行,或者查询优化器10能够由MPP数据仓库环境1的一个以上的系统应用或者驱动器远程执行。
查询优化器10在MPP数据仓库环境1内准备用于执行处理节点的执行计划(步骤502)。例如,查询优化器10能够基于定义一组规则、或者MPP数据仓库环境1的存储数据的统计来准备执行计划。查询优化器10在MPP数据仓库环境1的所有处理节点执行定义的步骤(步骤503)。来自MPP数据仓库环境1的所有处理单元的计算的部分结果被传输并合并为最终结果(步骤504)。计算的最终结果作为查询结果传输至MPP计算环境,用于在MPP数据仓库环境1内执行处理节点(步骤505)。
图6是绘出依据本发明的实施例的、由查询优化器10准备执行用于MPP数据仓库环境1的数据库系统5的查询的计划而执行的步骤的流程图。查询优化器10在MPP数据仓库环境1内执行(步骤601)。查询优化器10检测涉及MPP数据仓库环境1的查询处理的所有表格(步骤602)。查询优化器10估计涉及MPP数据仓库环境1的查询的表格的尺寸(步骤603)。在决定604,查询优化器10,确定是否有涉及MPP数据仓库环境1的查询的任何其他表格。查询优化器10在MPP数据仓库环境1内检测联接操作。(步骤605)。查询优化器10估计联接的表格的尺寸,或者MPP数据仓库环境1的联接操作的结果(步骤606)。在决定607,查询优化器10确定在MPP数据仓库环境1的执行计划中是否有任何其他联接操作。查询优化器10计算MPP数据仓库环境1的联接操作的最佳顺序(步骤608)。查询优化器10对于MPP数据仓库环境1的每个联接操作定义执行处理单元的最佳方式(步骤609)。
图7是绘出依据本发明的实施例的、由查询优化器10基于MPP数据仓库环境的1估计的联接的表格扩展数据库系统5,在数据库系统5内执行将联接操作处理时间最小化的步骤的流程图。查询优化器10估计联接的表格中数据的值分布,其中,联接的表格是在数据库系统5的表格的两个实例之间的联接操作的结果。(步骤710)。例如,根据至少一个实施例,估计的值分布数据基于具有联接操作的表格的两个实例的特定值的行的数量的计数、以及MPP数据仓库环境1的联接的表格的行的数量的计算。此外,估计的值分布数据是基于联接的表格的数据库系统5的列的值的密度函数。
根据至少一个实施例,查询优化器10确定用于对估计的值分布的属性的至少一个范围进行分区的边界,其中,对估计的值分布的属性的至少一个范围进行分区的边界与联接的表格的相同数量的行对应。(步骤720)。查询优化器10确定将属性的至少一个范围的确定的分区向数据库系统5的处理单元的至少一个分配。例如,属性的至少一个范围的确定的分区的分配基于在MPP数据仓库环境1的处理单元内的数据分发的定义的哈希函数(步骤730)。此外,根据至少一个实施例,定义的哈希函数适应以在MPP数据仓库环境1的处理单元内映射列的值。另外,依据本发明的实施例,定义的哈希函数减少MPP数据仓库环境1的数据库系统的处理单元的查询执行时间的中间处理影响。
图8是依据本发明的实施例的计算机系统的框图。计算机系统800是适当的计算机系统的仅一个示例,并且不意图暗示对本文说明的本发明的实施例的用途或者功能的范围作任何限制。
无论如何,计算机系统800能够实现和/或执行上文记载的任何功能。在计算机系统800中有在大量其他通用或者专用计算系统环境或者配置下可操作的计算机812。可以适当用于计算机812的周知的计算系统、环境和/或配置的示例包含但是不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或者膝上型计算机设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包含任何上述系统或者设备等的分布式云计算环境。MPP数据仓库环境1能够实现为计算机812的实例。
计算机812可以在计算机系统可执行指令的一般背景下说明,诸如计算机系统执行的程序模块。通常,程序模块可以包含例程、程序、对象、组件、逻辑、数据结构等执行特定任务或者实现特定抽象数据类型。计算机812可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于本地和包含存储器存储设备的远程计算机系统存储介质这两者。
此外如图8所示,计算机812示出为通用计算设备的形式。计算机812的组件可以包含但是不限于一个以上处理器或者处理单元816、存储器828、以及将包含存储器828的各种系统组件耦接至处理单元816的总线818。
总线818代表一个以上的任何若干类型的总线构造,包含存储器总线或者存储器控制器、外围设备总线、加速图形端口、以及使用任何各种总线架构的处理器或者本地总线。以示例而非限制的的方式,该架构包含工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
计算机812典型地包含各种计算机系统可读介质。该介质可以是由计算机812可访问的任何可用介质,并包含易失性和非易失性介质、以及可拆卸和非可拆卸介质这两者。
存储器828包含易失性存储器形式的计算机系统可读介质、诸如随机存取存储器(RAM)830和/或缓存832。计算机812还可以包含其他可拆卸/非可拆卸、易失性/非易失性计算机系统存储介质。仅以示例的方式,存储系统834能够被提供用来从/向非可拆卸的、非易失性磁介质(未示出,并且典型地称作“硬盘驱动器”)读出/写入。尽管未示出,但能够提供用于从/向可拆卸的、非易失性磁盘(例如“软盘”)读出/写入的磁盘驱动器;以及用于从/向可拆卸的、非易失性光盘(诸如CDROM、DVDROM、或者其他光学介质)读出或者写入的光盘驱动器。在该实例中,每个能够由一个或者更多数据介质接口连接至总线818。如进一步绘出并如下所述,存储器828可以至少包含一个程序产品,其具有一组(例如至少一个)被配置为实现本发明的实施例的功能的程序模块。
查询优化器10能够存储在存储器828中,以示例而非限制的方式,以及操作系统、一个以上的应用程序、其他程序模块和程序数据中。每个操作系统、一个以上的应用程序、其他程序模块和程序数据或者其一些组合可以包含网络环境的实施方式。程序模块842通常实现本文说明的本发明的实施例的功能和/或方法。查询优化器10能够实现为程序840的实例。
计算机812还可以与一个以上的外部设备814(诸如键盘、指向设备等)以及显示器824;能使用户与计算机812交互的一个以上的设备;和/或能使计算机812与一个以上的其他计算设备通信的任何设备(例如网卡、调制解调器等)。该通信经由输入/输出(I/O)接口822发生。仍然,计算机812经由网络适配器820与一个以上的网络,诸如局域网(LAN)、一般广域网(WAN)和/或公共网络(例如互联网)通信。如上绘出,网络适配器820经由总线818与计算机812的其他组件通信。应该理解的是,尽管未示出,其他硬件和/或软件组件能够被用于与计算机812结合。示例包含但是不限于:微码、设备驱动器、冗余的处理单元、外部盘驱动器阵列、RAID系统、磁带驱动器、以及数据存档存储系统等。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域普通技术人员可以领会到,本发明的实施例可以体现作为系统、方法或者计算机程序产品。从而,本发明的实施例可以采取全部为硬件实施方式,全部为软件实施方式(包括固件、常驻软件、微码等)或者将软件和硬件方面合并的实施方式的形式,通常在本文中都会被记为“电路”、“模块”或者“系统”。进一步地,本发明的实施例可以采取计算机程序产品的形式,该计算机程序产品体现在具有计算机可读程序代码体现在其上的一个或一个以上的计算机可读介质上。
此外,可以使用一个或一个以上的计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质、或者计算机可读储存介质。计算机可读储存介质例如可以是,但不限于电子、磁、光学、电磁、红外、或者半导体系统、设备、或者装置,或者任何上述的适当组合。计算机可读储存介质的更详细例子(非穷尽列表)包含如下:具有一个或多个导线的电连接、便携计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROMM或者闪存存储器)、光纤、便携光盘只读存储器(CDROM)、光学存储设备、磁存储设备、或者上述任何适当组合。在本文档的背景下,计算机可读储存介质可以是任何有形介质,该有形介质包含、或者储存使用于或者连接于指令执行系统、设备、或者装置的程序。
计算机可读信号介质可以包含带有计算机可读程序代码体现在其中(例如在基带中或者作为载波的部分)的传播数据信号。该传播信号可以采取任何种类的形式,包括但不限于电磁、光学、或者其任何适当组合。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质不是计算机可读储存介质,并传输、传播、或者运送使用于或者连接于指令执行系统、设备、或者装置的程序。
体现在计算机可读介质上的程序代码可以使用任何适当的介质,包括但不限于无线、有线、光纤电缆、RF等、或者任何上述的适当组合来传输。用于进行本发明的方面的操作计算机程序代码可以是任何一个或一个以上的编程语言的组合编写的,包括面向对象编程语言,比如Java、Smalltalk、C++等;常规的程序编程语言,比如C编程语言;硬件说明语言,诸如Verilog;或者类似的编程语言。程序代码可以全部在用户的计算机上、部分在用户的计算机上执行,作为独立的软件包,部分在用户的计算机上,部分在远程计算机上或者全部在远程计算机或者服务器上执行。在之后的方案中,远程计算机可以经由任何类型的网络(包括局域网(LAN)或者广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,经由使用了互联网服务供应商的互联网)。计算机程序指令还可以被装载至计算机、其他可编程数据处理设备、或者使一系列操作步骤在计算机上执行的其他装置、其他可编程设备或者其他装置,以生成计算机执行的处理,使得在计算机或者其他可编程设备上执行的指令提供用于执行在流程图和/或框图框中指明的功能/动作的处理。
公开了基于上述方法用于基于数据库系统的估计的联接的表格分布,在数据库系统内将联接操作处理时间最小化。然而,在不脱离本发明的范围内能够做出大量修改和替换。就此而言,流程图或者框图中的每个框可以代表代码的模块、片段或者部分,其包括用于实现指明的逻辑功能的一个或多个可执行指令。还要注意的是,在一些替代的实施方式中,在框中标注的功能可以以不同于图中的顺序发生。因此,本发明以示例而非限制的方式公开。
Claims (12)
1.一种用于基于数据库系统的估计的联接的表格分布在所述数据库系统内将联接操作处理时间最小化的计算机实现的方法,所述计算机实现的方法包括以下步骤:
由一个以上的处理器估计联接的表格中的数据的值分布,其中,所述联接的表格是数据库系统的表格的两个实例之间的联接操作的结果且所估计的数据的值分布基于具有联接操作的表格的两个实例的特定值的行的数量的计数以及联接的表格的行的数量的计算;
由所述一个以上的处理器确定用于在所估计的值分布的属性的至少一个范围进行分区的边界,其中,所述所估计的值分布的属性的至少一个范围进行分区的边界基于所述联接 的表格的密度分布函数,所述密度分布函数代表所述联接的表格的一个数据列内数据的分布;以及
由所述一个以上的处理器确定所述属性的至少一个范围的确定的分区向所述数据库系统的处理单元的至少一个分配。
2.如权利要求1所述的计算机实现的方法,其中,所估计的数据的值分布是基于所述数据库系统的联接的表格的列的值的密度函数。
3.如权利要求2所述的计算机实现的方法,还包含:由所述一个以上的处理器将所述联接的表格拆分为所估计的数据的值分布的属性的至少一个分区范围。
4.如权利要求1所述的计算机实现的方法,其中,所述属性的至少一个范围的确定的分区的分配基于所述处理单元内数据分发的定义的哈希函数。
5.如权利要求4所述的计算机实现的方法,其中,所述定义的哈希函数适于在所述处理单元内映射列的值。
6.如权利要求5所述的计算机实现的方法,其中,所述定义的哈希函数减少数据库系统的处理单元的查询执行时间的中间处理影响。
7.一种用于基于数据库系统的估计的联接的表格分布在所述数据库系统内将联接操作处理时间最小化的计算机系统,所述计算机系统包括:
一个以上的处理器、一个以上的计算机可读存储器、一个以上的计算机可读有形存储设备、以及存储在所述一个以上的存储设备中的至少一个中的程序指令,所述程序指令由所述一个以上的处理器中的至少一个经由所述一个以上的存储器中的至少一个执行,所述程序指令包括:
估计联接的表格中数据的值分布的程序指令,其中,联接的表格是在数据库系统的表格的两个实例之间的联接操作的结果并且所估计的值分布数据基于具有联接操作的表格的两个实例的特定值的行的数量的计数以及联接的表格的行的数量的计算;
确定用于在所估计的值分布的属性的至少一个范围进行分区的边界的程序指令,其中,所述在所估计的值分布的属性的至少一个范围进行分区的边界基于所述联接 的表格的密度分布函数,所述密度分布函数代表所述联接的表格的一个数据列内数据的分布;以及
确定将属性的至少一个范围的确定的分区向数据库系统的处理单元的至少一个分配的程序指令。
8.如权利要求7所述的计算机系统,其中,所估计的数据的值分布是基于所述数据库系统的联接的表格的列的值的密度函数。
9.如权利要求8所述的计算机系统,还包含将所述联接的表格拆分为所估计的数据的值分布的属性的至少一个分区范围的程序指令。
10.如权利要求7所述的计算机系统,其中,所述属性的至少一个范围的确定的分区的分配基于处理单元内数据分发的定义的哈希函数。
11.如权利要求10所述的计算机系统,其中,所述定义的哈希函数适于在所述处理单元内映射列的值。
12.如权利要求11所述的计算机系统,其中,所述定义的哈希函数减少数据库系统的处理单元的查询执行时间的中间处理影响。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/144,893 | 2013-12-31 | ||
US14/144,893 US9569493B2 (en) | 2013-12-31 | 2013-12-31 | Avoidance of intermediate data skew in a massive parallel processing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750770A CN104750770A (zh) | 2015-07-01 |
CN104750770B true CN104750770B (zh) | 2018-12-18 |
Family
ID=53482015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410679709.9A Expired - Fee Related CN104750770B (zh) | 2013-12-31 | 2014-11-24 | 将联接操作处理时间最小化的计算机实现的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9569493B2 (zh) |
CN (1) | CN104750770B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569493B2 (en) | 2013-12-31 | 2017-02-14 | International Business Machines Corporatin | Avoidance of intermediate data skew in a massive parallel processing environment |
US10366102B2 (en) | 2014-02-19 | 2019-07-30 | Snowflake Inc. | Resource management systems and methods |
DE102014109166A1 (de) * | 2014-07-01 | 2016-01-21 | Parsum-Gesellschaft für Partikel-, Strömungs- und Umweltmeßtechnik mbH | Verfahren zur Partikelformbestimmung |
US10210206B2 (en) | 2014-10-03 | 2019-02-19 | International Business Machines Corporation | Optimization of a plurality of table processing operations in a massive parallel processing environment |
JP6540110B2 (ja) * | 2015-03-11 | 2019-07-10 | 富士通株式会社 | データベースシステム、情報処理装置、及び、データベースプログラム |
US10503751B2 (en) * | 2015-10-16 | 2019-12-10 | Sap Se | Fragmentation for rapid data visualization |
US10585889B2 (en) * | 2015-12-23 | 2020-03-10 | Intel Corporation | Optimizing skewed joins in big data |
US10565201B2 (en) * | 2016-11-04 | 2020-02-18 | International Business Machines Corporation | Query processing management in a database management system |
US10956434B2 (en) * | 2016-12-22 | 2021-03-23 | Sap Se | Data dimension impact analysis |
US10409813B2 (en) * | 2017-01-24 | 2019-09-10 | International Business Machines Corporation | Imputing data for temporal data store joins |
CN109117423B (zh) * | 2017-06-23 | 2022-05-03 | 阿里巴巴集团控股有限公司 | 数据库系统的表格分区配置方法、装置和系统 |
CN112615910B (zh) * | 2020-12-10 | 2021-10-29 | 中国科学院深圳先进技术研究院 | 一种数据流连接优化方法、系统、终端以及存储介质 |
US20220300513A1 (en) * | 2021-03-19 | 2022-09-22 | International Business Machines Corporation | Asynchronous query optimization using spare hosts |
US20220350802A1 (en) * | 2021-04-29 | 2022-11-03 | International Business Machines Corporation | Query performance |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150304A (zh) * | 2011-12-06 | 2013-06-12 | 郑红云 | 云数据库系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085769B1 (en) * | 2001-04-26 | 2006-08-01 | Ncr Corporation | Method and apparatus for performing hash join |
US7299226B2 (en) * | 2003-06-19 | 2007-11-20 | Microsoft Corporation | Cardinality estimation of joins |
WO2005098655A2 (en) | 2004-02-21 | 2005-10-20 | Datallegro, Inc. | Ultra-shared-nothing parallel database |
US8078610B2 (en) * | 2008-03-26 | 2011-12-13 | Teradata Us, Inc. | Optimization technique for dealing with data skew on foreign key joins |
US8150836B2 (en) * | 2008-08-19 | 2012-04-03 | Teradata Us, Inc. | System, method, and computer-readable medium for reducing row redistribution costs for parallel join operations |
US8190598B2 (en) * | 2008-10-30 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Skew-based costing for database queries |
US8055651B2 (en) | 2009-02-10 | 2011-11-08 | International Business Machines Corporation | Distribution of join operations on a multi-node computer system |
US8914354B2 (en) * | 2009-07-28 | 2014-12-16 | Teradata Us, Inc. | Cardinality and selectivity estimation using a single table join index |
US8332389B2 (en) * | 2009-12-04 | 2012-12-11 | International Business Machines Corporation | Join order for a database query |
CN103262062A (zh) * | 2010-12-03 | 2013-08-21 | 惠普发展公司,有限责任合伙企业 | 用于执行嵌套连接操作的系统和方法 |
US8799269B2 (en) * | 2012-01-03 | 2014-08-05 | International Business Machines Corporation | Optimizing map/reduce searches by using synthetic events |
GB2508223A (en) * | 2012-11-26 | 2014-05-28 | Ibm | Estimating the size of a joined table in a database |
GB2508603A (en) * | 2012-12-04 | 2014-06-11 | Ibm | Optimizing the order of execution of multiple join operations |
US9569493B2 (en) | 2013-12-31 | 2017-02-14 | International Business Machines Corporatin | Avoidance of intermediate data skew in a massive parallel processing environment |
-
2013
- 2013-12-31 US US14/144,893 patent/US9569493B2/en not_active Expired - Fee Related
-
2014
- 2014-06-24 US US14/312,879 patent/US9569494B2/en not_active Expired - Fee Related
- 2014-11-24 CN CN201410679709.9A patent/CN104750770B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150304A (zh) * | 2011-12-06 | 2013-06-12 | 郑红云 | 云数据库系统 |
Also Published As
Publication number | Publication date |
---|---|
US9569493B2 (en) | 2017-02-14 |
US9569494B2 (en) | 2017-02-14 |
CN104750770A (zh) | 2015-07-01 |
US20150186466A1 (en) | 2015-07-02 |
US20150186465A1 (en) | 2015-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750770B (zh) | 将联接操作处理时间最小化的计算机实现的方法和系统 | |
US20200167315A1 (en) | Multi-range and runtime pruning | |
US11216485B2 (en) | Push model for scheduling query plans | |
US10318882B2 (en) | Optimized training of linear machine learning models | |
CA2953969C (en) | Interactive interfaces for machine learning model evaluations | |
US10339465B2 (en) | Optimized decision tree based models | |
US10169715B2 (en) | Feature processing tradeoff management | |
US11100420B2 (en) | Input processing for machine learning | |
US9449115B2 (en) | Method, controller, program and data storage system for performing reconciliation processing | |
US10678753B2 (en) | Data pruning based on metadata | |
US20190370599A1 (en) | Bounded Error Matching for Large Scale Numeric Datasets | |
CN103514229A (zh) | 用于在分布式数据库系统中处理数据库数据的方法和装置 | |
CN107229718A (zh) | 处理报表数据的方法和装置 | |
CN114586028A (zh) | 用于分布式知识库的基于本体的查询路由 | |
WO2020112580A1 (en) | Data retrieval | |
CN109241102A (zh) | 数据处理方法及装置、存储介质和电子设备 | |
US20230153300A1 (en) | Building cross table index in relational database | |
US11455309B2 (en) | Partition key adjustment based on query workload | |
CN105243063B (zh) | 信息推荐的方法和装置 | |
US11841857B2 (en) | Query efficiency using merged columns | |
JP6193491B2 (ja) | 計算機システム | |
US11573960B2 (en) | Application-based query transformations | |
CN112286995B (zh) | 一种数据分析方法、装置、服务器、系统及存储介质 | |
Mathew et al. | Metaheuristic-based BFDACO data allocation optimization in Neo4jHA for efficient query retrieval | |
US11940998B2 (en) | Database compression oriented to combinations of record fields |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |