CN105760419A - 用于连接处理的方法和系统 - Google Patents
用于连接处理的方法和系统 Download PDFInfo
- Publication number
- CN105760419A CN105760419A CN201610009308.1A CN201610009308A CN105760419A CN 105760419 A CN105760419 A CN 105760419A CN 201610009308 A CN201610009308 A CN 201610009308A CN 105760419 A CN105760419 A CN 105760419A
- Authority
- CN
- China
- Prior art keywords
- predicate
- response
- detect
- concatenated key
- selection
- 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.)
- Granted
Links
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/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- 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/24537—Query rewriting; Transformation of operators
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于连接处理的方法和系统。执行用于查询的第一数据库表和第二数据库表的连接包括:将查询的谓词应用于第一表作为第一谓词,并且确定第一表具有多少个在应用第一谓词之后存留的不同的连接关键字值,其中在应用第一谓词之后存留的第一表的连接关键字值是用于第二谓词的存留连接关键字值。选择包括:在将第二谓词应用于第二表、利用第二谓词探查第二表以及既不将第二谓词应用于第二表也不利用第二谓词探查第二表之间进行选择,其中该选择响应于不同的存留连接关键字值的数量。
Description
背景技术
星型方案包括中央事实表和一个或多个维度表,与事实表相比,一个或多个维度表通常相对更小。在这种情况下,分析查询通常连接中央事实表与一个或多个维度表。
发明内容
一种用于执行用于查询的第一数据库表和第二数据库表的连接的方法包括:将查询的谓词应用于第一表作为第一谓词,并且确定第一表具有多少个在应用第一谓词之后存留的不同的连接关键字值,其中在应用第一谓词之后存留的第一表的连接关键字值是用于第二谓词的存留连接关键字值。第一选择包括:在将第二谓词应用于第二表、利用第二谓词探查第二表以及既不将第二谓词应用于第二表也不利用第二谓词探查第二表之间进行选择,其中该选择响应于不同的存留连接关键字值的数量。
在另一方面,响应于在第一选择中选择将第二谓词应用于第二表或利用第二谓词探查第二表,该方法包括:在第二选择中,响应于第一表是否具有净荷列,在探查和不探查用于第一表的散列表之间进行选择。
在另一方面,第一选择响应于不同的连接关键字值的数量是否在数量方面小于预定量。
在另一方面,第一选择响应于确定第一表针对该查询的至少某个方面独立于第二表。
在另一方面,响应于不同的连接关键字值的数量并不在数量方面小于预定量,第一选择选择既不将第二谓词应用于第二表也不利用第二谓词探查第二表,并且其中,响应于不同的连接关键字值的数量在数量方面小于预定量,第一选择选择将第二谓词应用于第二表或利用第二谓词探查第二表。
在另一方面,该方法包括:在第一选择中,选择利用第二谓词探查第二表,其中选择利用第二谓词探查第二表响应于检测到映射由第一表对第二表的访问的索引、区域图(zonemap)或概要表。
在另一方面,在查询的运行时执行期间执行第一选择和第二选择。
还在本文中描述并且要求保护与以上概述的方法相关的系统和计算机程序产品。
附图说明
通过下面应该结合附图阅读的对本发明的说明性实施例的详细描述,本发明的上述各方面等(包括目的、形式、特征和优点)将会变得更加清楚。附图未按比例绘制,并且与详细描述一起用于清楚地便于本领域技术人员的理解。在附图中:
图1表示根据本发明的实施例的联网计算机环境;
图2是根据本发明的实施例的图1中示出的装置的方框图;
图3表示根据本发明的实施例的连接处理的某个方面;
图4表示根据本发明的实施例的连接处理的另外的方面。
具体实施方式
在这里公开本发明的详细的实施例以表示要求保护的结构和方法。然而,本发明可被以许多不同形式实现并且不应该被解释为局限于这里公开的示例性实施例。相反地,提供这些示例性实施例,以使得本公开内容将会透彻而完整,并且将会充分地将本发明的范围传达给本领域技术人员。在描述中,公知特征和技术的细节可被省略以避免不必要地模糊所提供的实施例。
图1表示根据本发明的实施例的示例性计算环境100。如图中所示,计算环境100包括经由网络120连接的计算机系统110.1、110.2至110.N,网络120可以是公共网络或私有网络。系统110.1、110.2等分别包括各自的模块,这些模块可以是被配置为为它们各自的装置执行任务的程序或硬件模块。
图2表示根据本发明的实施例的系统200,系统200可被应用为计算机系统110.1、110.2等中的任意或全部计算机系统。如图中所示,系统200包括中央处理单元(CPU)205、网络接口215、互连件(即,总线)217、存储器220和贮存器230。CPU205可检索并且执行存储在存储器220中的程序指令。类似地,CPU205可检索并且存储驻留在存储器220中的应用数据。互连件217可方便诸如程序指令和应用数据在CPU205、贮存器230、网络接口215和存储器220之间的传输。CPU205被包括以代表单个CPU、多个CPU、具有多个处理核的单个CPU等。另外,根据本发明的实施例,存储器220被包括以代表随机存取存储器,该随机存取存储器包括用于运行时执行的数据和程序模块(诸如,所示出的示例性数据222和模块224)。然而,应该理解,一个或多个模块(诸如,模块224)可由其它硬件来实现,并且可以是固件。
数据222和模块224可以是用于由CPU205在存储器220中的运行时执行的、来自贮存器230的数据和程序模块的实例(诸如,所示出的示例性数据232和模块234)。贮存器230中的数据和程序模块可包括数据库表和一个或多个查询执行模块。例如,贮存器230可以是盘驱动器存储装置。虽然示出为单个单元,但是贮存器230可以是固定存储装置和/或可移动存储装置(诸如,固定盘驱动器、软盘驱动器、磁带驱动器、可移动存储卡或光学存储器、网络附连贮存器(NAS)或存储区域网络(SAN))的组合。
图3表示根据本发明的实施例的查询执行的数据结构和各方面,其中示出了维度表310和事实表320。虽然这种维度表310通常小于事实表320,但是连接维度表310与事实表320仍然是资源密集的,并且因此相对较慢。存在用于减少消耗的资源并且增加查询执行的速度的各种方法。散列连接处理是一种方法。对于散列连接处理,针对连接处理中涉及的事实表320的相应的维度表310的至少一些行建立散列表(诸如,340)。在扫描事实表320的维度表310之后,创建散列表340。这通常是快速而高效的,但是仍然需要基于事实表320中的行探查一个或多个散列表。当涉及大的事实表(大的事实表甚至可包括十亿或更多的行)时,即使对于小的散列表,这种探查也仍然是资源密集的并且较慢。因此,在这里公开另外的连接处理和结构。
一个或多个优化技术有时被用于改进探查或扫描。例如,一些系统确定例如内表(诸如,维度表310)的关键字列的值的范围,然后将该范围应用为外表(例如,事实表320)的关键字列的谓词。替代地,可应用布鲁姆(Bloom)滤波器和范围谓词二者。
然而,不管这种优化如何,范围仍然可以覆盖事实表(诸如,表320)的大部分。例如,考虑对连续的黑色星期五的销售的查询,其中将日期维度表与具有十三个月的销售事务的销售事实表连接。日期维度表上的谓词将会将它减少至仅两行,每行用于每个黑色星期五。然而,由于这两个黑色星期五分开十二个月并且销售事实表具有十三个月的销售事务,所以销售事实表中的多数日期落在黑色星期五日期的十二个月范围内。因此,计算该查询的最小/最大范围以及将该范围应用于销售事实表并不显著减少将会需要探查日期维度表的散列表的销售事实表的行。
在另一优化例子中,考虑下面的上下文,其中称为“产品”的表被指定为维度表,以及具有各自代表产品的100个行并且具有productID(产品ID)、productName(产品名称)和productLaunchDate(产品发布日期)的列。称为“销售”的表被指定为事实表,并且具有各自代表销售事务的5百万个行,其中列是transactionID(事务ID)、transactionAmount(事务量)、transactionDate(事务日期)和productID(产品ID)。想要了解2013年的iMac产品的销售的商业分析师可发出下面的查询(在这里被称为“查询1”):
selectsum(transactionAmount)fromsales,productwheresales.productID=product.productIDandproduct.productName='iMac'andsales.transactionDatebetween'1/1/2013'and'12/31/2013'
对于这个查询,查询执行模块(诸如,例如图2中的模块224的实例)可根据散列连接执行计划在运行时选择动作和顺序,其中查询执行模块对productName(产品名称)应用指定的谓词,并且随后建立具有product.productID(产品.产品ID)作为关键字的散列表。散列表中所包括的行是在产品名称列中具有“iMac”的产品表的那些“存留行”(即,满足product.productName='iMac'谓词的那些行)。
根据本发明的实施例,为了执行连接处理,查询执行模块根据预定准则在运行时动态地选择一个或多个动作,这可包括选择一系列动作。例如,查询执行模块可在运行时将查询的一个或多个相关谓词应用于一个或多个相对较小的维度表310。图3示出在运行时将谓词应用于维度表310,其中查询执行模块扫描维度表310以应用谓词330并且还可产生散列表340。然后,使用应用一个或多个谓词的结果,查询执行模块还可在运行时将该结果转换成一个或多个相应的IN列表谓词,以用于运行时探查更大的事实表320或应用于更大的事实表320。
为了表示“IN列表谓词”的含义,考虑具有包含首名称的“firstName(首名称)”列的表。为了在表320中选择包括例如首名称John(约翰)、Jack(杰克)和Rick(里克)的行,根据示例性语法,IN列表谓词可以被表示如下:
firstNameIN{'John','Jack','Rick'}.
图3示出例如在应用谓词之后存留的表310的两个行,并且示出查询执行模块作为响应产生用于维度表310的两个存留行的净荷列的散列表340。图3还示出查询执行模块在运行时将这两个行转换成IN列表谓词315。图3还示出查询执行模块在运行时将IN列表谓词315应用于事实表320,从而产生一个存留行。图3示出使用事实表320的存留行的连接关键字值来探查散列表340,以从维度表310的净荷列找到匹配值。
在正确的情况下,在运行时将谓词应用于维度表310并且随后将那些结果转换成IN列表谓词以在运行时应用于事实表320可以大大改善连接处理时间。例如,考虑特别有益的情况:查询执行模块在运行时应用与特定维度表310相关的查询的一个或多个谓词,以及查询执行模块在应用谓词之后因此确定不存在来自维度表310的结果的连接净荷。“净荷”指的是除了连接关键字之外还需要的产品表的列。
通过上述将查询1应用于产品表和销售表来示出无净荷例子,其中产品表例示维度表310。连接关键字自身(用于iMac产品名称的产品ID)是查询执行模块在应用谓词之后为来自产品表的存留行的散列表产生的唯一列。在本发明的实施例中,除了连接关键字之外不需要维度表310的列的无净荷情况是有益的,这是因为通过将连接关键字列结果转换成IN列表谓词以在运行时应用于事实表320,连接操作中涉及的维度表310的其它列的缺乏允许查询执行模块完全避免探查用于维度表310的散列表。
为了表示存在查询执行模块在应用谓词之后从产品表的存留行产生的散列表中所包括的净荷列的相同表的例子,考虑商业分析师想要按照名称返回每个产品在最近3年的总销售额的报告。分析师可发出下面的查询:
selectproductName,sum(transactionAmount)fromsales,productwheresales.productID=product.productIDandtransactionDate>'1/1/2010'groupbyproductName
在这种情况下,在应用谓词sales.productID(销售.产品ID)=product.productID(产品.产品ID)之后,对于来自产品表的存留行的散列表,查询执行模块包括product.productID(产品.产品ID)作为连接关键字并且包括productName(产品名称)作为散列表的净荷列,这是因为随后的分组操作以及将报告返回给商业分析师需要产品名称。
还可由查询执行模块创建布鲁姆(Bloom)滤波器以减少对散列表中的非匹配探查的数量。布鲁姆(Bloom)滤波器是近似滤波器,该滤波器可具有假阳性行(falsepositiverow),该假阳性行在探查之后存留但是随后在散列表查询期间被消除。也就是说,响应于维度表的扫描,查询执行模块可针对在谓词应用之后存留的维度表的行产生布鲁姆(Bloom)滤波器和散列表。在探查散列表之前,查询执行模块探查布鲁姆(Bloom)滤波器,以确定探查的每个行是否可以被丢弃。
应该理解,在维度表310或它的谓词结果足够小从而查询执行模块创建并且应用上述IN列表谓词的情况下,在已经基于给定维度表310应用精确的IN列表谓词之后,事实表320探查近似的布鲁姆(Bloom)滤波器将会是冗余的。
参照图3和图4,由查询执行模块执行的连接处理400包括建立阶段405和探查阶段410。关于建立阶段405,根据本发明的实施例,查询执行模块选择性地执行一个或多个另外的动作415-445,而非仅仅应用局部谓词、计算维度表上的最小和最大连接关键字值并且随后建立布鲁姆(Bloom)滤波器和散列表。
响应于检测到415这种维度表310针对给定查询不依赖于事实表320(例如,没有左连接(LEFTJOIN)、侧面参考或将会需要在事实表之后访问维度表的其它属性),查询执行模块在与事实表320连接之前选择对其执行一个或多个操作的一个或多个维度表310。(这种维度表可在这里被称为“独立维度表”。)当检测到415独立维度表310时,查询执行模块在动作440或447等处处理事实表320之前,在运行时将一个或多个局部谓词应用于420独立维度表310。
对于查询执行模块应用420局部谓词330的每个维度表310的存留行(例如,图3中具有关键字B和C的行),查询执行模块执行动作425,动作425包括针对给定连接关键字列将连接关键字值彼此进行比较,以便确定不同的连接关键字值并且计数存在多少个。(必须将这些值彼此比较以发现冗余值,以使得当计数不同的连接关键字值时,每个冗余值被从计数中消除并且由此计数不超过一次。)如果该比较揭示出特定维度表的存留行具有比预定数量的不同连接关键字值(诸如,例如10个不同连接关键字值)更少的连接关键字值,则查询执行模块将该特定维度表310指定425为小维度表,在这种情况下,查询执行模块还在探查410维度表310的散列表340之前执行另外的动作,其中另外的动作包括为小维度表310的那些不同连接关键字值创建435IN列表谓词315。另外,对于这种状况,查询执行模块不在建立阶段405为小维度表310建立布鲁姆(Bloom)滤波器。
如果查询执行模块确定430小维度表310不具有针对该查询的净荷(与图3中不同),则查询执行模块也跳过建立阶段处理405并且不为维度表310建立散列表340。因此,当在净荷决定块430做出“否”决定时,处理400直接分叉到结果450,而不在表310没有净荷时执行散列表340探查动作410并且不为维度表310建立散列表340。也就是说,在维度表310不具有净荷、以及在415处满足独立性以使得查询谓语可以在另外的操作之前被应用于420维度表310以连接维度表310和事实表320、以及在420处应用谓词的存留行在425处被确定为在数量方面较小的这种特殊情况下,仅通过将In列表315应用于440事实表320或通过基于IN列表315探查447事实表320来产生结果450。
如果查询执行模块处理400在430处确定小维度表310具有针对该查询的净荷,则查询执行模块在建立阶段405为小维度表建立散列表340,并且查询执行模块探查410小维度表310的散列表340,这是因为检索维度表310的一个或多个净荷列需要探查410。(参见图3中的例子,其中使用来自连接关键列的值“B”,经由地址的散列产生325,从散列表340获得存留行的净荷列值“K”。)然而,每次这样的探查410被保证发现匹配,这是因为首先将来自小维度表310的不同连接关键字值的上述IN列表谓词315应用于440事实表320,如这里所描述的。这是有益的,不仅因为它避免未命中的探查,而且因为它减少原本在探查散列表时跟踪哪些行匹配所需要的开销。同样地,它允许避免使用布鲁姆(Bloom)滤波器,如前所述的。
在运行时期间选择用于连接事实表320和维度表310的动作的其它方面,查询执行模块处理400进一步分类445为过滤或不过滤在运行时被确定为415独立并且在运行时被确定为425较小的每个维度表310。响应于检测到事实表320具有一个或多个索引或区域图/概要表,查询执行模块将维度表310分类445为过滤类型,其中一个或多个索引或区域图/概要表映射到维度表310并且可以被用于针对给定查询来探查447事实表320。根据过滤445,图4示出处理400的一个分支包括由被分类445为过滤的维度表310的索引等引导事实表320的探查447,并且还示出在动作440处的另一分支(即,用于在过滤决定445已确定不存在用于探查447的索引等时的分支)。在这个分支中,查询执行模块将IN列表315作为谓词应用440于事实表320。无论是通过基于IN列表315的探查447的动作还是应用440IN列表315作为一个或多个谓词,这种动作可将事实表320减少至较少的行,其中每个剩余行分别满足IN列表谓词315的项。
根据本发明的实施例,将谓词应用于表和探查该表之间的差异与动态连接顺序调整相关。将谓词应用于表不减少在表内访问的行的数量,但是可减少有资格连接到另一个表的行的数量(因此,减少结果集合中的行的数量)。使用谓词探查表减少在表内访问的行的数量。例如,采用IN列表谓词FACT.C1IN(1,2,3)。当这被作为IN列表谓词应用于FACT(事实)表时,它被应用于FACT(事实)表的每个行。然而,如果这个谓词被用于探查FACT(事实)表(使用FACT(事实)表上的索引或区域图等),则只有FACT(事实)表中的C1等于这三个值之一的那些行将会被访问。
根据本发明的实施例,动态连接顺序调整识别IN列表谓词何时可以显著而有效地减少FACT(事实)表中的需要被访问的行的数量,并且在这种情况下使用IN列表谓词来探查FACT(事实)表。在IN列表谓词没有显著减少在FACT(事实)表中访问的行的数量的情况下,针对FACT(事实)表应用IN列表谓词,而不是IN列表谓词被用于探查FACT(事实)表。
从图4中示出的动作应该理解,不管每个维度表310是否被视为445过滤类型,查询执行模块都将小的独立维度表的不同连接关键字值转换成相应的IN列表谓词315,以用于运行时应用440于事实表320或用于探查447事实表320。此外,不管它们是否被视为过滤类型,查询执行模块都为维度表310产生散列表340(并且还可在建立处理阶段405产生布鲁姆(Bloom)滤波器或稀疏索引),除非它被视为415独立并且被视为425较小并且被确定430为不具有该查询所需的净荷。因此,为每个非小的独立维度表310、每个非独立维度表310以及为具有净荷的每个小的独立维度表310建立405散列表340,而不管它们是否被视为445过滤类型。每个这样的散列表340(以及布鲁姆(Bloom)滤波器或稀疏索引)用于针对事实表320(即,响应于事实表320的扫描)进行探查410,以根据该查询发现散列表340中的匹配。
如果为维度表310建立405散列表340(即,因为表310包括净荷、或不独立、或并不小而建立405),则查询执行模块在410处执行探查动作,其中它扫描从探查447或应用440剩余的事实表320的行,并且响应于事实表320的那些剩余行来探查410散列表340,由此获得维度表310的匹配净荷。
在表示这里公开的方面的查询仿真中,维度表在应用420谓词之后没有净荷并且具有两个行,并且事实表在对这两个行的连接关键字应用440谓词之后具有72亿个行。在没有添加处理415-445的情况下,当使用建立处理405时,查询处理时间是13.6秒。当使用另外的处理415-445并且因此减少建立阶段处理405的各方面时,查询处理被减少至0.39秒。
以上在这里描述的本发明的实施例导致针对星型方案查询的高效连接顺序的选择,并且不依赖于统计数据(统计数据可能遗漏或不准确),也不依赖于估计的谓词选择性(对于复杂谓词或涉及参数标记的谓词,估计的谓词选择性可能不准确)。利用低开销实现这一点,这至少部分归因于使用在事实表处理之前发生的连接处理阶段期间获得的信息,该阶段是在任何情况下必须执行的阶段。当维度表在任何过滤(即,将谓词应用于维度表)之后相对较小时,本发明的实施例提供特别有效的处理。散列连接在这里被用作例子,但是本发明的实施例也适用于其它连接,诸如例如排序合并连接。
本领域普通技术人员将会理解,以上是隐式连接表示法中的内连接的例子。对于本发明的这种内连接实施例,连接操作的执行创建新的结果表,从而仅当左表或右表或者两个表的行具有满足从右表产生的IN列表谓词的连接关键字值的左表的行时,结果表的每个行包括来自左表或右表或者两个表的行的一个或多个值。
本发明的实施例还包括左外连接实施例,其中连接操作的执行创建新的结果表,该结果表包括左表的所有行。对于本发明的这种实施例,查询执行模块避免探查用于右表的散列表,并且针对不满足所产生的IN列表谓词的行,在结果表中简单地将右表的净荷列设置为“空(NULL)”。(这里,对于散列连接,左侧=外侧=探查侧,并且右侧=内侧=建立侧。这适用于内连接和外连接二者。)本发明的实施例还包括反连接实施例,其中连接操作的执行创建新的结果表,从而仅当左表或右表或者两个表的行不具有满足从右表产生的NOT(非)IN列表谓词的连接关键字值的左表的行时,结果表的每个行包括来自左表或右表或者两个表的行的一个或多个值。
可以在将查询编译(在“编译时”)为可执行代码时完成关于用于连接操作的动作的决定,其中该决定可基于例如数据库统计数据。替代地,当如以上在这里所述地基于内连接的不同值的数量执行经编译的查询(在“运行时”)时,可以完成关于连接操作动作的决定。由于过时的统计数据或各种谓词之间的较差相关性,编译时做出决定可能受到损害。在为由查询执行模块执行处理400提供覆盖(override)模式的本发明的实施例中,可以如下完成至少两件事。首先,如果在编译时决定不执行这里描述的运行时连接优化动作,但是内连接上的不同值的实际数量在运行时被确定为小于预定量,则查询执行模块可在运行时覆盖(override)编译时决定,并且执行这里描述的运行时IN列表优化动作。其次,如果在编译时决定执行这里描述的运行时连接优化动作,但是内连接上的不同值的实际数量在运行时被确定为超过某个预定量,则查询执行模块可在运行时覆盖编译时决定,并且不执行这里描述的运行时IN列表优化动作。
上述例子和附图中的图示并不意图暗示架构限制。例如,任何装置110.1、110.2等可以是笔记本计算机、手持式计算机、智能电话、一体机(kiosk)等。另外,本发明可驻留在由计算机系统使用的任何数据存储介质(即,软盘、压缩盘、硬盘、磁带、ROM、RAM等)上。(术语“计算机”、“系统”、“计算机系统”和“数据处理系统”在这里可被互换地使用。)
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一个或多个数据库可被包括在主机中以存储用于各种实现方式的数据并且提供对该数据的访问。本领域技术人员也将会理解,由于安全原因,本发明的任何数据库、系统或部件可包括在单个位置或在多个位置的数据库或部件的任意组合,其中每个数据库或系统包括各种合适的安全特征中的任何安全特征(诸如,防火墙、访问代码、加密、解密等)。
数据库可以是任何类型的数据库,诸如关系数据库、分层数据库、面向对象的数据库等。可被用于实现数据库的数据库产品是或其它可用的数据库产品。(IBM和DB2是在全世界许多管辖区域中注册的国际商用机器公司的商标。)该数据库可被以任何合适的方式组织,包括被组织为数据表或查询表。
可通过本领域已知并且实施的任何数据关联技术来实现某些数据的关联。例如,可手动地或自动地完成该关联。自动关联技术可包括例如数据库搜索、数据库合并、GREP、AGREP、SQL等。可通过数据库合并功能,例如使用制造商和零售商数据表中的每种数据表中的关键字字段来完成该关联步骤。关键字字段根据由关键字字段定义的对象的高级类来分割数据库。例如,某个类可在第一数据表和第二数据表中都被指定为关键字字段,并且这两个数据表随后可基于该关键字字段中的类数据而被合并。在这个实施例中,与每个合并的数据表中的关键字字段对应的数据优选地是相同的。然而,也可通过使用例如AGREP来合并在关键字字段中具有类似但不相同的数据的数据表。
主机可提供合适的网站或用户可访问的其它基于因特网的图形用户界面。在一个实施例中,结合SunSolaris操作系统平台使用Netscapeweb服务器、因特网工具套件、IBMDB2、通用数据库平台和Sybase数据库平台。(IBM和WebSphere是在全世界许多管辖区域中注册的国际商用机器公司的商标。)另外,诸如JBDC驱动器、IBM连接池和IBMMQ系列连接方法的部件可被用于提供对若干个源的数据访问。如这里所使用的术语“网页”并不意图限制可被用于与用户交互的文档和应用的类型。例如,除了标准HTML文档之外,典型网站还可能包括各种形式:Java小应用程序、Javascript(java脚本)、活动服务器页(ASP)、Java服务器页(JSP)、公共网关界面脚本(CGI)、可扩展标记语言(XML)、动态HTML、层叠样式表(CSS)、帮助应用、插件等。
尽管本说明书包含许多细节,但是这些不应该被解释为对本发明的范围或可以要求保护的内容的限制,而是应该被解释为对本发明的特定实现方式的特定特征的描述。在不同实现方式的情况下在本说明书中描述的某些特征也可被在单个实现方式中组合地实现。相反地,在单个实现方式的情况下描述的各种特征也可以分别在多个实现方式中或按照任何合适的子组合来实现。此外,虽然特征可以在以上被描述为按照某些组合起作用并且甚至最初被如此要求保护,但是可以在一些情况下从要求保护的组合中删除来自该组合的一个或多个特征,并且要求保护的组合可以被引导为子组合或子组合的变型。
类似地,尽管在附图中以特定次序描述操作,但是这不应该被理解为要求以示出的特定次序或以顺序次序执行这种操作、或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有益的。此外,上述实现方式中的各种系统部件的分离不应该被理解为在所有实现方式中需要这种分离,并且应该理解,所描述的程序部件和系统通常可以一起被集成在单个软件产品中、或被封装到多个软件产品中。
已阅读本公开内容的本领域技术人员将会意识到,可在不偏离本发明的范围的情况下对实施例做出改变和修改。
应该理解,这里示出和描述的特定实现方式说明本发明及其最佳模式,而非意图另外以任何方式限制本发明的范围。其它变化落在下面的权利要求书的范围内。
权利要求书中记载的动作可以被以不同次序执行,并且仍然实现期望的结果。同样地,在附图中描述的处理未必需要所示出的特定次序或顺序次序来实现期望的结果。在某些实现方式中,多任务处理和并行处理可以是有益的。
以上参照特定实施例描述了益处、其它优点和对问题的解决方案。然而,益处、优点、对问题的解决方案和可使任何益处、优点或解决方案发生或变得更加清楚的任何元件不应该被解释为任何或全部权利要求的关键的、需要的或必要的特征或元件。
如这里所使用的,术语“包括”、“包含”或其任何其它变型旨在覆盖非排他性的包含,从而包括一系列元件的处理、方法、制品或设备并不仅仅包括那些元件,而是可包括未明确地列出或这种理、方法、制品或设备固有的其它元件。另外,除非被明确地描述为必要或关键的,否则本发明的实施不需要这里描述的元件。
这里使用的术语仅用于描述特定实施例的目的,并且不是旨在限制本发明。如这里所使用的,单数形式的“a”、“an”和“the”旨在还包括复数形式,除非上下文清楚地指示不同情况。将会进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所陈述的特征、整体、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。
以下权利要求书中的所有装置或步骤以及功能元件的对应结构、材料、动作和等同物旨在包括用于结合具体要求保护的其它要求保护的元件一起执行功能的任何结构、材料或动作。
本发明的描述用于说明和描述的目的,而不是旨在是穷尽的或者局限于所公开的形式的发明。在不偏离本发明的范围和精神的情况下,对于本领域普通技术人员而言,许多修改和变化将会是清楚的。选择并描述实施例以便最好地解释本发明的原理和实际应用,并且使其他本领域普通技术人员能够针对具有适合于设想的特定用途的各种修改的各种实施例来理解本发明。
Claims (14)
1.一种用于执行用于查询的第一数据库表和第二数据库表的连接的方法,包括:
将查询的谓词应用于第一表作为第一谓词,其中在应用第一谓词之后存留的第一表的任何连接关键字值是用于第二谓词的存留连接关键字值;
确定多少个不同的连接关键字值被包括在存留连接关键字值中;以及
在第一选择中,在将第二谓词应用于第二表、利用第二谓词探查第二表以及既不将第二谓词应用于第二表也不利用第二谓词探查第二表之间进行选择,其中该选择响应于不同的存留连接关键字值的数量。
2.如权利要求1所述的方法,其中响应于在第一选择中选择将第二谓词应用于第二表或利用第二谓词探查第二表,该方法包括:
在第二选择中,响应于第一表是否具有净荷列,在探查和不探查用于第一表的散列表之间进行选择。
3.如权利要求1所述的方法,其中所述第一选择响应于不同的连接关键字值的数量是否在数量方面小于预定量。
4.如权利要求1所述的方法,其中所述第一选择响应于确定第一表针对该查询的至少某个方面独立于第二表。
5.如权利要求3所述的方法,其中响应于不同的连接关键字值的数量并不在数量方面小于所述预定量,第一选择选择既不将第二谓词应用于第二表也不利用第二谓词探查第二表,并且其中,响应于不同的连接关键字值的数量在数量方面小于所述预定量,第一选择选择将第二谓词应用于第二表或利用第二谓词探查第二表。
6.如权利要求1所述的方法,包括:
在第一选择中,选择利用第二谓词探查第二表,其中选择利用第二谓词探查第二表响应于检测到映射由第一表对第二表的访问的索引、区域图或概要表。
7.如权利要求2所述的方法,其中在所述查询的运行时执行期间执行第一选择和第二选择。
8.一种用于执行用于查询的第一数据库表和第二数据库表的连接的系统,该系统包括:
处理器;和
计算机可读存储介质,连接到处理器,其中所述计算机可读存储介质上存储有用于控制处理器的程序,并且其中,处理器利用该程序进行操作以执行该程序从而用于下述操作:
将查询的谓词应用于第一表作为第一谓词,其中在应用第一谓词之后存留的第一表的任何连接关键字值是用于第二谓词的存留连接关键字值;
确定多少个不同的连接关键字值被包括在存留连接关键字值中;以及
在第一选择中,在将第二谓词应用于第二表、利用第二谓词探查第二表以及既不将第二谓词应用于第二表也不利用第二谓词探查第二表之间进行选择,其中该选择响应于不同的存留连接关键字值的数量。
9.如权利要求8所述的系统,其中响应于在第一选择中选择将第二谓词应用于第二表或利用第二谓词探查第二表,该方法包括:
在第二选择中,响应于第一表是否具有净荷列,在探查和不探查用于第一表的散列表之间进行选择。
10.如权利要求9所述的系统,其中所述第一选择响应于不同的连接关键字值的数量是否在数量方面小于预定量。
11.如权利要求8所述的系统,其中所述第一选择响应于确定第一表针对该查询的至少某个方面独立于第二表。
12.如权利要求10所述的系统,其中响应于不同的连接关键字值的数量并不在数量方面小于所述预定量,第一选择选择既不将第二谓词应用于第二表也不利用第二谓词探查第二表,并且其中,响应于不同的连接关键字值的数量在数量方面小于所述预定量,第一选择选择将第二谓词应用于第二表或利用第二谓词探查第二表。
13.如权利要求8所述的系统,其中所述处理器利用该程序进行操作以执行该程序从而用于下述操作:
在第一选择中,选择利用第二谓词探查第二表,其中选择利用第二谓词探查第二表响应于检测到映射由第一表对第二表的访问的索引、区域图或概要表。
14.如权利要求9所述的系统,其中在所述查询的运行时执行期间执行第一选择和第二选择。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/591,596 | 2015-01-07 | ||
US14/591,596 US10810200B2 (en) | 2015-01-07 | 2015-01-07 | Technology for join processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760419A true CN105760419A (zh) | 2016-07-13 |
CN105760419B CN105760419B (zh) | 2020-01-17 |
Family
ID=56286643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610009308.1A Active CN105760419B (zh) | 2015-01-07 | 2016-01-07 | 用于连接处理的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10810200B2 (zh) |
CN (1) | CN105760419B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549688A (zh) * | 2018-04-11 | 2018-09-18 | 上海达梦数据库有限公司 | 一种数据操作的优化方法、装置、设备和存储介质 |
CN109597807A (zh) * | 2018-10-25 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 数仓表处理方法和装置 |
CN113204568A (zh) * | 2021-05-26 | 2021-08-03 | 上海达梦数据库有限公司 | 一种结构化查询语句优化方法、装置、设备及存储介质 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810200B2 (en) | 2015-01-07 | 2020-10-20 | International Business Machines Corporation | Technology for join processing |
US10067961B2 (en) * | 2015-09-29 | 2018-09-04 | International Business Machines Corporation | Expression based synopsis of database tables |
US10726016B2 (en) | 2015-10-15 | 2020-07-28 | Oracle International Corporation | In-memory column-level multi-versioned global dictionary for in-memory databases |
US10678791B2 (en) * | 2015-10-15 | 2020-06-09 | Oracle International Corporation | Using shared dictionaries on join columns to improve performance of joins in relational databases |
US10565201B2 (en) * | 2016-11-04 | 2020-02-18 | International Business Machines Corporation | Query processing management in a database management system |
CN108287840B (zh) * | 2017-01-09 | 2022-05-03 | 北京大学 | 一种基于矩阵哈希的数据存储和查询方法 |
US10346398B2 (en) | 2017-03-07 | 2019-07-09 | International Business Machines Corporation | Grouping in analytical databases |
CN110069514B (zh) * | 2017-10-20 | 2021-08-17 | 北京京东尚科信息技术有限公司 | 消息处理方法和装置 |
CN107729535B (zh) * | 2017-11-17 | 2020-01-03 | 中国科学技术大学 | 一种键值数据库内布隆过滤器的配置方法 |
US10581891B1 (en) | 2017-11-27 | 2020-03-03 | Lacework Inc. | Using graph-based models to identify datacenter anomalies |
CN108090224B (zh) * | 2018-01-05 | 2020-05-08 | 星环信息科技(上海)有限公司 | 一种级联连接方法及设备 |
CN109241101B (zh) | 2018-08-31 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种数据库查询优化方法、装置、及计算机设备 |
CN110232074B (zh) * | 2019-05-31 | 2022-04-08 | 新华三大数据技术有限公司 | 流数据与维表关联方法及流计算装置 |
CN112988698A (zh) * | 2019-12-02 | 2021-06-18 | 阿里巴巴集团控股有限公司 | 一种数据处理方法以及装置 |
US11308090B2 (en) | 2019-12-26 | 2022-04-19 | Snowflake Inc. | Pruning index to support semi-structured data types |
US10769150B1 (en) | 2019-12-26 | 2020-09-08 | Snowflake Inc. | Pruning indexes to enhance database query processing |
US11567939B2 (en) | 2019-12-26 | 2023-01-31 | Snowflake Inc. | Lazy reassembling of semi-structured data |
US11372860B2 (en) * | 2019-12-26 | 2022-06-28 | Snowflake Inc. | Processing techniques for queries where predicate values are unknown until runtime |
CN111221827B (zh) * | 2020-01-15 | 2023-05-26 | 成都量子象云计算科技有限公司 | 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质 |
US10877967B1 (en) | 2020-03-13 | 2020-12-29 | Snowflake Inc. | System and method for disjunctive joins |
US11880369B1 (en) | 2022-11-21 | 2024-01-23 | Snowflake Inc. | Pruning data based on state of top K operator |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134546A (en) * | 1998-06-25 | 2000-10-17 | International Business Machines Corporation | Method and computer program product for implementing subquery join |
CN1825305A (zh) * | 2005-10-31 | 2006-08-30 | 北京神舟航天软件技术有限公司 | 基于谓词关键度分析的查询计划缓存方法及其系统 |
US20140214795A1 (en) * | 2013-01-31 | 2014-07-31 | International Business Machines Corporation | Dynamically determining join order |
CN104050202A (zh) * | 2013-03-15 | 2014-09-17 | 伊姆西公司 | 用于搜索数据库的方法和装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006220A (en) | 1997-09-30 | 1999-12-21 | International Business Machines Corporation | Determining the optimal access path for a query at execution time using an actual value for each variable in a query for estimating a filter factor |
US20020010911A1 (en) | 2000-02-16 | 2002-01-24 | Ben-Chung Cheng | Compile time pointer analysis algorithm statement of government interest |
US6615206B1 (en) | 2001-09-28 | 2003-09-02 | Oracle International Corporation | Techniques for eliminating database table joins based on a join index |
US7085754B2 (en) | 2002-03-04 | 2006-08-01 | International Business Machines Corporation | System and a two-pass algorithm for determining the optimum access path for multi-table SQL queries |
US7275051B2 (en) | 2002-11-08 | 2007-09-25 | International Business Machines Corporation | Method and system for reducing host variable impact on access path selection |
US20050160102A1 (en) | 2004-01-15 | 2005-07-21 | International Business Machines Corporation | Look-ahead predicate generation for join costing and optimization |
US7574425B2 (en) | 2004-12-03 | 2009-08-11 | International Business Machines Corporation | System and method for query management in a database management system |
US7536379B2 (en) | 2004-12-15 | 2009-05-19 | International Business Machines Corporation | Performing a multiple table join operating based on generated predicates from materialized results |
US7814094B2 (en) | 2005-09-29 | 2010-10-12 | Teradata Us, Inc. | Optimizing access to a database by utilizing a star join |
US8005820B2 (en) * | 2005-09-29 | 2011-08-23 | Teradata Us, Inc. | Optimizing the processing of in-list rows |
US8032522B2 (en) | 2006-08-25 | 2011-10-04 | Microsoft Corporation | Optimizing parameterized queries in a relational database management system |
JP2009140147A (ja) | 2007-12-05 | 2009-06-25 | Hitachi Ltd | ホストから論理ボリュームまでのアクセスパスの作成を支援する装置。 |
US7974967B2 (en) | 2008-04-15 | 2011-07-05 | Sap Ag | Hybrid database system using runtime reconfigurable hardware |
US8190595B2 (en) | 2009-03-28 | 2012-05-29 | Microsoft Corporation | Flexible query hints in a relational database |
US8903805B2 (en) | 2010-08-20 | 2014-12-02 | Oracle International Corporation | Method and system for performing query optimization using a hybrid execution plan |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US9773032B2 (en) | 2011-09-30 | 2017-09-26 | Bmc Software, Inc. | Provision of index recommendations for database access |
CN103136260A (zh) | 2011-11-30 | 2013-06-05 | 国际商业机器公司 | 评估过滤因子用于数据库中访问路径优化的方法和装置 |
US8645356B2 (en) | 2012-03-28 | 2014-02-04 | International Business Machines Corporation | Adaptive query execution plan enhancement |
US9275110B2 (en) * | 2013-03-01 | 2016-03-01 | Paraccel Llc | Disk-based hash join process |
US9659046B2 (en) * | 2013-07-31 | 2017-05-23 | Oracle Inernational Corporation | Probing a hash table using vectorized instructions |
US9990398B2 (en) * | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US10545917B2 (en) * | 2014-02-19 | 2020-01-28 | Snowflake Inc. | Multi-range and runtime pruning |
US9652497B2 (en) | 2014-04-23 | 2017-05-16 | International Business Machines Corporation | Processing queries using hybrid access paths |
US10810200B2 (en) | 2015-01-07 | 2020-10-20 | International Business Machines Corporation | Technology for join processing |
-
2015
- 2015-01-07 US US14/591,596 patent/US10810200B2/en active Active
- 2015-12-10 US US14/965,737 patent/US10810201B2/en active Active
-
2016
- 2016-01-07 CN CN201610009308.1A patent/CN105760419B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134546A (en) * | 1998-06-25 | 2000-10-17 | International Business Machines Corporation | Method and computer program product for implementing subquery join |
CN1825305A (zh) * | 2005-10-31 | 2006-08-30 | 北京神舟航天软件技术有限公司 | 基于谓词关键度分析的查询计划缓存方法及其系统 |
US20140214795A1 (en) * | 2013-01-31 | 2014-07-31 | International Business Machines Corporation | Dynamically determining join order |
CN104050202A (zh) * | 2013-03-15 | 2014-09-17 | 伊姆西公司 | 用于搜索数据库的方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549688A (zh) * | 2018-04-11 | 2018-09-18 | 上海达梦数据库有限公司 | 一种数据操作的优化方法、装置、设备和存储介质 |
CN108549688B (zh) * | 2018-04-11 | 2020-10-16 | 上海达梦数据库有限公司 | 一种数据操作的优化方法、装置、设备和存储介质 |
CN109597807A (zh) * | 2018-10-25 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 数仓表处理方法和装置 |
CN113204568A (zh) * | 2021-05-26 | 2021-08-03 | 上海达梦数据库有限公司 | 一种结构化查询语句优化方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105760419B (zh) | 2020-01-17 |
US20160196306A1 (en) | 2016-07-07 |
US10810201B2 (en) | 2020-10-20 |
US10810200B2 (en) | 2020-10-20 |
US20160196302A1 (en) | 2016-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105760419A (zh) | 用于连接处理的方法和系统 | |
US11372855B2 (en) | Metadata-based general request translator for distributed computer systems | |
JP7273045B2 (ja) | Sqlクエリプランを最適化するための次元コンテキスト伝搬技術 | |
CN105122243B (zh) | 用于半结构化数据的可扩展分析平台 | |
US9881052B2 (en) | Limiting scans of loosely ordered and/or grouped relations in a database | |
KR102143889B1 (ko) | 메타데이터 관리를 위한 시스템 | |
AU2013335231B2 (en) | Profiling data with location information | |
US11194813B2 (en) | Adaptive big data service | |
US20110313969A1 (en) | Updating historic data and real-time data in reports | |
US20130166602A1 (en) | Cloud-enabled business object modeling | |
US8924848B2 (en) | Synchronizing a user interface area | |
US11163586B1 (en) | Automated configuration of application program instance | |
CN103473256B (zh) | 用于内容管理的方法和系统 | |
US20230075655A1 (en) | Systems and methods for context-independent database search paths | |
CN104699742A (zh) | 使能扩展大型数据集的极端可视化 | |
CN102200996B (zh) | 对动态报告进行解析和索引 | |
CN104106066A (zh) | 用于查看和操纵在时间参考点处的产物的系统 | |
US20150293947A1 (en) | Validating relationships between entities in a data model | |
US9015608B2 (en) | Regenerating a user interface area | |
EP3486798A1 (en) | Reporting and data governance management | |
Kimball | The evolving role of the enterprise data warehouse in the era of big data analytics | |
Zečević et al. | Model driven development of hybrid databases using lightweight metamodel extensions | |
US20210056100A1 (en) | Metadata-based software artifact search | |
US9542457B1 (en) | Methods for displaying object history information | |
US20160162821A1 (en) | Comparative peer analysis for business intelligence |
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 |