CN100476817C - 部分查询缓存 - Google Patents
部分查询缓存 Download PDFInfo
- Publication number
- CN100476817C CN100476817C CNB2005800125059A CN200580012505A CN100476817C CN 100476817 C CN100476817 C CN 100476817C CN B2005800125059 A CNB2005800125059 A CN B2005800125059A CN 200580012505 A CN200580012505 A CN 200580012505A CN 100476817 C CN100476817 C CN 100476817C
- Authority
- CN
- China
- Prior art keywords
- plan operator
- plan
- result set
- operator
- inquiry
- 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.)
- Active
Links
Images
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/24539—Query rewriting; Transformation using cached or materialised query results
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Abstract
当执行查询时形成由多个计划操作符组成的执行计划。在执行任何给定计划操作符之前,检查存储区域。如果已存储了对应于计划操作符的结果集,则使用缓存结果集,而不是执行计划操作符。如果不存在对应于特定计划操作符的结果集,则执行计划操作符,并且可以存储被输出的结果集已备另一执行计划的另一计划操作符使用。
Description
技术领域
本发明涉及处理数据库命令,并且特别地,涉及缓存查询的结果集。
背景技术
本部分所描述的方法是能够进行的方法,但却不一定是先前已经设想或进行的方法。因此,除非另加指明,不应仅仅因为本部分所描述的任何方法包含在部分中而认为其是现有技术。类似地,除非另外指名,与方法一起说明的问题不应推测为已被现有技术所认知。
当数据库服务器接收了表示执行数据库操作的请求的语句时,数据库服务器可以生成执行计划。执行计划定义了数据库服务器为了实现请求而执行的步骤和操作。用于请求数据库操作的语句可以是遵循诸如结构化查询语言(SQL)等数据库语言的数据库命令的形式。
快速返回查询结果集是理想的。随着越来越多的人们使用数据库来获得他们寻找的信息,针对数据库所发布的查询相同的可能性增大。在一些系统中,存储至少某些查询的结果集。当接收到查询时,执行基于文本的搜索以找到先前执行的查询。如果发现相同的同一查询(具有相同文本)被第二次提出,并且如果存储了该查询的结果集,则系统返回缓存结果集而不是第二次执行查询。使用该数据库的人越多,则通过保存查询的结果集所获得的性能提高就越大。
但是,许多查询并不是完全相同而是相似。许多查询可能处理其结果集中的同一数据的子集。然而,由于查询并不完全相同,所以不能重新使用可能与期望的结果集具有相同数据子集的缓存结果集,尽管结果集有相似性,但是仍要执行每个相似的查询。
基于以上所述,仍然需要存储和重新使用查询的结果集。
附图说明
本发明在附图中以实例的方式示出,但这并不用于限定本发明,其中,相同的参考标号表示相同的元件,在附图中:
图1是执行计划的示意图;
图2是示出根据本发明实施例的执行计划操作符的方法的流程图;
图3是示出根据本发明实施例的存储结果集的方法的流程图;
图4是示出可以实施本发明实施例的计算机系统的框图。
具体实施方式
以下描述了用于部分查询缓存的方法和装置。在以下的描述中,为了解释的目的,描述了多个特定的细节,以提供对本发明的透彻理解。然而,很显然,在没有这些特定细节的情况下,也可以实现本发明。在其它的实例中,以框图形式示出已知的结构和设备,以避免不必要地使本发明不清楚。
下文中描述了可以彼此单独使用或与其它特征结合使用的多个特征。然而,任一单个特征可能不能处理前文描述的多个问题,或仅仅处理前文描述的多个问题中的一个。上述的一些问题可能不能由本文描述的任一特征完全处理。虽然提供了标题,但是涉及特定标题但却未存在于具有该标题的部分中的信息还可以存在于本说明书中的其它地方。
本文描述的方法使用先前被生成用于查询的结果的至少一部分用于另一查询的随后计算。使用被生成用于由执行查询的计划定义的操作的结果集作为执行另一查询的相同或相似操作的结果集。
执行计划
数据库服务器生成对于效率而言最优的执行计划。当确定了在执行计划中包括什么步骤以及执行步骤的顺序时,数据库服务器考虑影响效率的许多因素。例如,查询可能请求包含第一列中的第一值以及第二列中的第二值的行。如果第一列被索引,则数据库服务器可能生成使用该索引以更有效地访问数据的执行计划。这样的执行计划可能包括按下面指定的顺序执行的以下步骤。
1.访问索引并生成包括第一列中的第一值的行的行ID。
2.获得由行ID限定的行的集合。
3.以第二列中的第二值过滤行的集合。
查询执行计划包括被称为“计划操作符”的步骤。计划操作符定义了一组操作,其在执行计划中被执行并且可以由数据库服务器执行以访问一个或多个行源。行源可以是存储在数据库中的数据(例如,表中的一个或多个行),或者是另一计划操作符的一个或多个输出行。在Oracle 8i Concepts(甲骨文(Oracle)公司著,1999年二月)一书的第22-24章中解释了执行计划。Oracle 8i Concepts中的内容结合于此作为参考。
执行计划的示意图
执行计划可以由执行计划示意图表示。图1为执行计划示意图,用于说明包括部分查询缓存的执行计划实例的各种特征。在图1中,(通过数据库服务器)生成执行计划102用于查询104。查询104为以下查询:
SELECT t1.col4,t2.col2
FROM t1,t2
WHERE t1.col1=t2.col2 AND t1.col3=192
GROUP BY t1.col4;
查询104包含谓词105,即,t1.col1=t2.col2和t1.col3=192。谓词是定义被查询的表中的行必须满足的标准的逻辑表达式。
在执行计划102中,使用框来表示计划操作符。具体来说,组计划操作符106、连接计划操作符108、扫描表和过滤计划操作符112、扫描表计划操作符116都是构成执行计划102的计划操作符。在父计划操作符和子计划操作符之间的树枝代表从子计划操作符到父计划操作符的行的流。因此,子计划操作符的输出行是到父计划操作符的输入行。计划操作符在本文被描述为执行计划操作符本身定义的操作。然而,这仅仅是表示当数据库服务器执行计划操作符时数据库服务器正在执行由计划操作符定义的操作的便利方法。
在执行计划102中,扫描表和过滤计划操作符112以及扫描表计划操作符116分别执行表t1的列col1以及表t2的列col2的扫描。但是,扫描表和过滤计划操作符112附加地过滤表t1的被扫描的行,以便仅使具有col3=192的行被选择并由此被包括在扫描表和过滤计划操作符112的输出中。连接计划操作符108连接从扫描表和过滤计划操作符112以及扫描表计划操作符116输出的行,以形成由连接计划操作符108输出的行。组计划操作符106将由连接计划操作符108创建的行分成组。组计划操作符106的结果是,输出中的每一行都代表不同的组(换句话说,输出中的每个t1.col4都是唯一的)。
功能概述
在部分查询缓存中,计算查询的各个计划操作符的结果集并将其存储在存储区域中,用于其它查询的潜在再利用。存储区域是操作符输出存储器区域,将其称作输出存储器。计划操作符的结果集在此称为缓存结果集。每个缓存结果集都将具有基于结果集的各个计划操作符的定义所生成的签名。具有相同或相似的定义并且进而潜在地具有相同或相似的结果集的计划操作符将具有相同或相似的签名。为了计算计划操作符(即,为其生成结果),生成签名用于计划操作符,并用于搜索用于带有相同签名的缓存结果集的存储区域。如果找到了缓存结果集,则可以进一步检查缓存结果集的计划操作符,以确定缓存结果集是否可被用作正被计算的计划操作符的结果集。在另一实施例中,如果找到了给定签名的缓存结果集,则对计划操作符不做进一步检查,并且将缓存结果集用作计划操作符的结果集。如果没有找到缓存结果集,则执行计划操作符。另外,可以将通过执行计划操作符生成的结果集存储在输出区域中,用于另一相应计划操作符的后续使用。
在一实施例中,首先,通过从结果集中搜索计划操作符来执行整个查询的搜索,其中,结果集包括了查询的执行计划的所有计划操作符。如果结果集没有被存储用于对应于整个查询的计划操作符,则对于构成执行计划的一个或多个计划操作符,搜索输出存储器,以检查是否存储了缓存结果集用于相应的计划操作符。
在一实施例中,从包括查找的最大部分的计划操作符(如,包括整个查询的计划操作符)进行搜索,然后搜索包括查找的下一最大部分的计划操作符,其包含在查询的最大部分的计划操作符中。换句话说,如果没有找到父计划操作符的缓存结果集,则搜索用于作为父计划操作符的直接孩子的计划操作符(如果有的话)的缓存结果集。
执行查询
图2是示出根据本发明实施例的执行计划操作符的方法200的流程图。方法200示出了当执行计划操作符时执行的步骤。在步骤201中,生成用于查询的计划操作符。在步骤202中,生成该计划操作符的签名。在步骤204中,通过执行计划操作符生成结果集。在步骤206中,将在步骤204中生成的结果集存储在输出存储器(例如,高速缓存)中。输出存储器将在下文中讨论。在步骤208中,以签名(以及可选地,计划操作符)与缓存结果集相关的方式存储签名(以及可选地,计划操作符)。
图3是示出根据本发明实施例的利用缓存结果集的方法300的流程图。在步骤302中,生成计划操作符用于查询。在步骤303中,生成签名用于正被评估的计划操作符。在步骤304中,从输出存储器搜索缓存结果集。在执行搜索的过程中,可以在正被评估的计划操作符的签名以及存储的与缓存结果集相关的签名之间进行比较。在一实施例中,可能需要严格匹配。在可选步骤306中,如果找到匹配,则执行进一步的评估,其中,将存储的计划操作符与正被评估的计划操作符进行比较,以确定缓存结果集是否可用。在步骤308中,如果步骤306包含在方法300中,那么如果在步骤306中确定缓存结果集可用,则返回缓存结果集(或者返回给用户作为结果集,或者用作另一计划操作符的输入),而不执行计划操作符。在步骤308中,如果步骤306不包括在方法300中,那么如果在步骤304中找到匹配(例如,如果发现两个签名充分相似),则返回缓存结果集,而不执行计划操作符。
参照图1,在实现方法300的过程中,当接收到查询104时,数据库服务器将查询计划102公式化。然后,数据库服务器检查计划操作符输出存储器区域,以确定缓存结果集是否被存储用于构成执行计划102的计划操作符。首先搜索构成查询的较大部分的计划操作符,这是因为,如果找到了对应于构成较大部分的计划操作符的结果集,则无需搜索构成包含在较大部分中的较小部分的计划操作符。
例如,在执行计划102中,首先,搜索对应于组计划操作符106的缓存结果集。如果找到了结果集,则将找到的结果集返回给用户作为查询104的结果集,而不是第二次执行组计划操作符106。此外,不需要搜索剩余的计划操作符的结果集,这是因为,执行计划102的剩余计划操作符包括在组计划操作符106中。
然而,如果没有找到对应于组计划操作符106的缓存结果集,那么数据库服务器搜索对应于连接计划操作符108的缓存结果集。如果找到了对应于连接计划操作符108的缓存结果集,则返回该缓存结果集用作到组计划操作符106的输入,并且无需执行执行计划102的剩余操作符。在对对应于连接计划操作符108的缓存结果集执行组计划操作符106以后,将组计划操作符106的结果集(基于对应于连接计划操作符108的缓存结果集)返回给用户作为查询104的结果集。在另一查询包括组计划操作符106或类似的计划操作符的情况下,可以将执行组计划操作符106的结果集存储在输出存储器中。
如果没有找到对应于连接计划操作符108的缓存结果集,则数据库服务器搜索对应于扫描表和过滤计划操作符112以及扫描表计划操作符116的缓存结果集。如果找到了对应于扫描表和过滤计划操作符112的缓存结果集,则返回该缓存结果集以备连接计划操作符108使用。如果没有找到扫描表和过滤计划操作符112的缓存结果集,则数据库服务器执行扫描表和过滤计划操作符112,并且返回执行扫描表和过滤计划操作符112的结果集,以备连接计划操作符108使用。此外,可以存储扫描表和过滤计划操作符112的结果集以备后续使用。类似地,如果找到了扫描表计划操作符116的缓存结果集,则返回缓存结果集以备连接计划操作符108使用。如果没有找到用于扫描表计划操作符116的缓存结果集,则数据库服务器执行扫描表计划操作符116,并且返回执行扫描表计划操作符116的结果集以备连接计划操作符108使用。此外,可以存储扫描表计划操作符116的结果集以备后续使用。然后对返回的结果集执行连接计划操作符108,而不管返回的结果集源于执行扫描表和过滤计划操作符112以及扫描表计划操作符116,或源于找到对应于扫描表和过滤计划操作符112以及扫描表计划操作符116的缓存结果集,还是源于找到用于扫描表和过滤计划操作符112以及扫描表计划操作符116二者其中之一的缓存结果集并执行所述这二者中的另一个。使用连接计划操作符108的结果集来执行下一个组计划操作符106,并且返回组计划操作符106的结果集给用户作为查询104的结果集。如上所述,在另一查询包括组计划操作符106或连接计划操作符108中的一个的情况下,可以将执行组计划操作符106和/或连接计划操作符108的结果集存储在计划操作符输出存储器中。
在一实施例中,可以不必存储给定操作符的结果集。相反,可以执行成本收益分析来确定是否存储给定操作符的结果集,或者是否不存储结果集并且如果另一查询包括相同的操作符则第二次执行操作符。可被用于确定是否存储给定操作符的结果集的一些因素是执行操作符所需的时间和资源以及可用的存储区域量。例如,如果执行计划操作符所需的时间小于搜索用于缓存结果集的输出存储器所需的预期时间,则可以不存储结果集。类似地,如果存储结果集所需的存储区域大于输出存储器中的可用存储区域(例如,或是因为结果集太大,或是因为存储区域满或接近满了),则也可以不存储结果集。相反,如果结果集不需要多的存储区域或者有大量的存储区域可用,并且计划操作符需要相当多的时间来执行,则可以存储结果集。可以用于确定是否存储新近执行的计划操作符的结果集的其他因素对于本领域的技术人员来说是显而易见的。
两个不同查询中的每一个都可被不同的数据库语句集来公式化,但是却可能具有相同的执行计划。例如,第一查询可能包括NATURAL连接,而除了连接关键字(JOIN KEY)在USING子句中被显式命名而不是使用NATURAL连接外,第二查询可与第一查询相同。通过公式化执行计划并搜索执行计划的结果集,即使两个查询由不同的数据库语句集形成,一个查询的结果集也可被返回作为另一查询的结果集。
输出存储器可以是任何形式的存储器,诸如以下在硬件描述部分中说明的那些存储器。在一实施例中,输出存储器是一个或多个临时或短期存储装置(例如,易失性存储装置)中的一个或多个存储区域。在一实施例中,同长期存储器(例如,硬盘)相比,短期输出存储器(例如,闪存或RAM)可能具有相对较快的访问时间。在一实施例中,输出存储器是一个或多个长期存储装置(例如,非易失性存储装置)中的一个或多个存储区域。在一实施例中,输出存储器是一个或多个长期存储装置以及短期存储装置中的一个或多个存储区域的组合。
计划操作符的签名
在一实施例中,基于计划操作符的定义为每个计划操作符建立签名。生成签名使得具备相同或相似定义的计划操作符具有相同签名。在一实施例中,签名可以基于用于定义或描述计划操作符的数据结构。例如,与计划操作符相关的数据结构可被用来生成哈希(Hash)值,哈希值可被映射到用于形成被用来组成签名的序列号的数字值。
计划操作符的结果集可与计划操作符的签名被一起存储。当接收到新查询时,通过搜索与具有相同签名的计划操作符相关的结果集来搜索与先前执行的计划操作符相关的结果集。使用签名可以写入不同的两个查询,但是其各自的执行计划可以共享带有相同签名的计划操作符。
使用签名使得数据库服务器快速找到可被用于查询的结果集。在一实施例中,每个计划操作符都被映射到代表该计划操作符的恰当描述的签名。在可选实施例中,每个计划操作符都被映射到还用于其它计划操作符的集合和/或排列的签名,并且与该签名相关的结果集被用于签名的集合和/或排列中的每个计划操作符。在本实施例中,签名不必然代表计划操作符的恰当描述。在一实施例中,在找到匹配的签名之后,比较计划操作符,以评估来自一个计划操作符的结果集是否被期望用作其它计划操作符的结果集。在另一实施例中,如果两个签名匹配或充分相似,则使用找到的缓存结果集,而无需进一步检查产生缓存结果集的计划操作符。
相似但不完全相同的计划操作符
很多时候,查询相似但不完全相同。通过搜索对应于不一致的查询的计划操作符,可以增加返回查询的结果集的速度。因此,在一实施例中,当搜索计划操作符的结果集时,如果发现用于不同计划操作符的缓存结果集相似,则可以使用相似操作的结果集,而不是执行实际操作。例如,如果生成的用于查询的计划操作符涉及查找与2000年11月1日至2004年1月1日之间的日期相关的一组数据,并且发现了用于找到与2000年11月1日至2004年2月23日之间的日期相关的数据的计划操作符的缓存结果集,则可以使用找到的缓存结果集,而不是执行被生成用于查询的实际计划操作符。在一实施例中,找到的缓存结果集被“按原样(asis)”使用,而没有进一步修改。在另一实施例中,过滤找到的缓存结果集,以去除缓存结果集中的一些或全部多余数据。在另一实施例中,评估缓存结果集或缓存结果集的签名,以确定用户是否可能注意到接收到的被请求的结果与找到的缓存结果集之间的差异,在此实例中为与2004年1月2日至2004年2月23日之间的日期相关的多余数据。如果预期到用户不会注意到此差异,则返回找到的缓存结果集,而不是执行计划操作符。如果预期到用户会注意到此差异,则执行计划操作符,或者过滤缓存结果集以去除2004年1月2日至2004年2月23日之间的多余数据。
在一实施例中,如果预期到典型用户不可能关心返回哪个结果集,则可以认为两个计划操作符相似。例如,在一实施例中,如果预期到缓存结果集的内容除了有小百分比的行不同外与计划操作符的内容几乎相同,则缓存结果集可被用作计划操作符的结果集。无论是相似但不相同还是不相似,都可以通过用户输入来控制可以以这种方式使用的缓存结果集。例如,用户输入可以包括指定是否可以返回相似但不同的缓存结果集的查询中的命令或参数,或者经由应用程序员界面(“API”)被设置为指定是否可以返回相似但不同的缓存结果集的用户数据库会话中的变量。参数或变量还可以指定两个计划操作符或签名可能不同的程度,而同时仍然允许一个计划操作符或签名的缓存结果集用于另一个计划操作符或签名的结果集。
还有,在一实施例中,如果期望第一计划操作符除了返回一些多余数据之外还返回第二计划操作符的所有结果集,并且期望该多余数据的数量不足以造成混淆对应于第二计划操作符的结果集的内容,那么第一计划操作符的结果集可以被按原样或在其修改之后被接受作为第二计划操作符的结果集。类似地,在一实施例中,如果期望第一计划操作符返回比第二计划操作符更小的结果集,但是期望所丢失的数据是不重要的或少量的,则第一计划操作符的结果集可以按原样或在修改之后被接受作为第二计划操作符的结果集。
失效的缓存结果集
即使给定查询的计划操作符可能完全相同,但是由于在不同的时间执行查询,因此计划操作符的结果集仍可能不同。在一实施例中,当找到对应于给定计划操作符的缓存结果集时,执行检查,以确定找到的缓存结果集是否失效。例如,在一实施例中,根据计划操作符输出存储器中的缓存结果集来存储计算缓存结果集的时间。如果缓存结果集的年限大于阈值年限,则缓存结果集就不再保存在高速缓存中,或者被用作另一查询的计划操作符的结果集。阈值年限可以基于上述的用户输入。
硬件描述
图4是示出可以执行本发明的实施例的计算机系统400的框图。具体而言,计算机系统400可被用作数据库服务器和/或可以被编程以实现上述的部分查询缓存方法。计算机系统400包括总线402或用于传输信息的其它通信装置,以及与总线402连接的用于处理信息的处理器404。计算机系统400还包括连接至总线402的主存储器406,诸如随机存取存储器(RAM)或者其它动态存储装置,用于储存信息和将由处理器404执行的指令。在执行将由处理器404执行的指令期间,主存储器406还可用于储存临时变量或其他中间信息。计算机系统400进一步包括只读存储器(ROM)408或连接至总线402的其他静态存储装置,用于存储静态信息和处理器404的指令。提供诸如磁盘或光盘的存储装置410,并使其连接至总线402用于存储信息和指令。
计算机系统400可以经由总线402连接至诸如阴极射线管(CRT)的显示器412,用于向计算机用户显示信息。包括字母数字键和其他键的输入装置414连接至总线402,用于将信息和命令选择传递到处理器404。另一种类型的用户输入装置是诸如鼠标、跟踪球、或光标方向键的光标控制416,用于将方向信息和命令选择传递到处理器404并用于控制显示器412上的光标移动。输入装置通常在两个轴上(第一个轴(例如X轴)和第二个轴(例如Y轴))具有两个自由度,使装置能指定平面上的位置。
计算机系统400可被用于存储计划操作符的结果集。根据本发明的一个实施例,响应于执行包括在主存储器406中的一个或多个指令的一个或多个序列的处理器404,计算机系统400提供计划操作符的结果集的存储器并搜索存储器112中的先前执行的计划操作符的缓存结果集。这样的指令可以从诸如存储装置410的另一计算机可读介质读入主存储器406。通过执行包括在主存储器406中的指令序列,使得处理器404执行本文所述的处理步骤。还可以应用多处理布局中的一个或多个处理器,以执行包含在主存储器406中的指令序列。在可选实施例中,可以使用硬连线电路(hard-wiredcircuitry)来取代软件指令或者与软件指令结合来实施该发明。因此,本发明的实施例将不限于硬件电路和软件的任何特定组合。
这里使用的术语“计算机可读介质”是“机器可读介质”的一个实例,指的是参与向处理器404提供指令用于执行的任何介质。这种介质可以采取多种形式,包括但不限于非易失性介质、易失性介质、和传输介质。非易失性介质举例来说包括光盘或磁盘,诸如存储装置410。易失性介质包括动态存储器,诸如主存储器406。传输介质包括同轴电缆、铜线、和光纤,包括组成总线402的导线。传输介质还可采取声波或光波形式,例如那些在无线电波和红外线数据通信过程中产生的声波和光波。
通常形式的机器可读介质包括如软盘、软性盘、硬盘、磁带,或者任何其它磁性介质、CD-ROM、任何其它光介质、打孔纸、纸带、或者任何带孔图样的物理介质、RAM、PROM、EPROM、FLASH-EPROM、或者其他任何存储芯片或者盒式磁带,或者以下提到的载波、或者计算机可读的任何其他介质。
各种形式的计算机可读介质可以参与将一个或者多个指令的一个或多个序列承载到处理器404用于执行。例如,指令开始可承载在远程计算机的磁盘中。远程计算机可以将指令加载到其动态存储器中,然后使用调制解调器通过电话线发送指令。计算机系统400本地的调制解调器可接收电话线上的数据,并使用红外发射器将数据转换成红外信号。连接到总线402的红外探测器可以接收红外信号携带的数据,并且将数据放到总线402上。总线402将数据承载到主存储器406,处理器404从主存储器取回并执行这些指令。在由处理器404执行这些指令之前或之后,由主存储器406接收的指令可随意地存储在存储装置410上。
计算机系统400还包括连接至总线402的通信接口418。提供双向数据通信的通信接口418,连接到与局域网422连接的网络链路420。例如,通信接口418可以是综合业务数字网(ISDN)卡或者调制解调器,用于提供到相应类型的电话线的数据通信连接。又如,通信接口418可以是局域网(LAN)卡,用于提供至兼容局域网(LAN)的数据通信连接。也可以使用无线链路。在任何这样的实施中,通信接口418发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号、和光学信号。
网络链路420通常可通过一个或者多个网络向其它数据装置提供数据通信。例如,网络链路420可通过局域网422与主机424连接,或者与互联网服务提供商(ISP)426操作的数据设备连接。ISP426又通过目前通称为“互联网”428的全球分组数据通信网络提供数据通信服务。局域网422和互联网428都使用承载数字数据流的电信号、电磁信号、或光学信号。通过各种网络的信号和网络链路420上的信号以及通过通信接口418的信号,都传送数字数据给计算机系统400或者传送来自计算机系统的数字数据,是传输信息的载波的示例性形式。
计算机系统400能通过网络、网络链路420、和通信接口418发送消息和接收数据(包括程序代码)。在互联网的实例中,服务器420可通过互联网428、ISP 426、局域网422、和通信接口418,传送用于应用程序的所请求的程序代码。正如在此描述的,根据本发明,一个这样下载的应用程序提供了与先前执行的输出存储器中的计划操作符相关的结果集的存储器。
所接收的代码可以在其被接收时由处理器404执行,和/或存储在存储装置410或者其它非易失性存储器中用于随后执行。按照这种方式,计算机系统400可以获得载波形式的应用代码。
在以上的说明中,已经参照可以随着实施的不同而改变的多个特定细节描述了本发明的实施例。因此,本发明的唯一和专有标志,以及申请人所期望的本发明,即为本申请以公布权利要求的特定形式所陈述的权利要求,包括任何后续修改。被清楚地陈述用于权利要求中所包含的术语的任何定义,都将限定在权利要求中所使用的这些术语的含义。因此,非限制性地,权利要求中没有明确提到的元件、特性、特征、优点、或者属性都不应该以任何方式限制权利要求的范围。因此,说明书及其附图是用于示例说明的目的,而不是用于限制本发明。
Claims (11)
1.一种用于在数据库服务器计算查询的方法,包括:
在所述数据库服务器接收第一查询;
生成用于通过所述数据库服务器执行所述第一查询的第一计划,其中,所述第一计划包括多个第一计划操作符,其中,所述多个第一计划操作符至少包括一个输出第一结果集的第一计划操作符;
生成输出所述第一结果集的第一计划操作符的第一签名;
通过执行所述第一计划操作符生成所述第一结果集;
存储与所述第一签名相关的所述第一结果集;
在存储了与所述第一签名相关的所述第一结果集之后,接收第二查询;
生成用于通过所述数据库服务器执行所述第二查询的第二计划,其中,所述第二计划包括多个第二计划操作符,其中,所述多个第二计划操作符至少包括一个第二计划操作符;
基于所述第一签名确定所述第一结果集的至少一个子集可被用作所述一个第二计划操作符的第二结果集;以及基于存储的所述第一结果集的所述子集计算所述第二查询的第二结果集。
2.根据权利要求1所述的方法,其中,基于由所述第一计划操作符执行的操作来生成所述签名。
3.根据权利要求1所述的方法,其中,所述确定步骤至少包括:
将所述第二计划操作符的签名与多个计划操作符的被存储的签名进行比较,以确定是否所述多个计划操作符中的每个都是所述第二计划操作符。
4.根据权利要求1所述的方法,其中,所述第一计划操作符和所述第二计划操作符完全相同。
5.根据权利要求1所述的方法,其中,所述第一计划操作符和所述第二计划操作符不同。
6.根据权利要求1所述的方法,其中,所述第一计划操作符和所述第二计划操作符相似。
7.根据权利要求1所述的方法,其中,所述第一计划操作符和所述第二计划操作符完全相同,但是所述第一结果集和所述第二结果集不同。
8.根据权利要求1所述的方法,其中,所述第一计划包括第三计划操作符,所述方法进一步包括:响应于所述第三计划操作符输出第三结果集,其中,不存储所述第三结果集。
9.根据权利要求1所述的方法,其中,所述确定步骤包括:确定何时计算所述第一结果集。
10.根据权利要求1所述的方法,其中,所述第一计划操作符和所述第二计划操作符之间存在差异,并且所述计算步骤包括:基于所述差异修改所述第一结果集。
11.根据权利要求1所述的方法,进一步包括:通过对存储的所述第一结果集应用过滤来计算所述第一结果集的子集,其中,基于在所述第二查询中包含的条件来生成所述子集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/830,510 | 2004-04-22 | ||
US10/830,510 US7676453B2 (en) | 2004-04-22 | 2004-04-22 | Partial query caching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1947118A CN1947118A (zh) | 2007-04-11 |
CN100476817C true CN100476817C (zh) | 2009-04-08 |
Family
ID=34966323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800125059A Active CN100476817C (zh) | 2004-04-22 | 2005-04-20 | 部分查询缓存 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7676453B2 (zh) |
EP (1) | EP1738290B1 (zh) |
JP (1) | JP4856627B2 (zh) |
CN (1) | CN100476817C (zh) |
AU (1) | AU2005239366B2 (zh) |
CA (1) | CA2562281C (zh) |
DE (1) | DE602005008030D1 (zh) |
HK (1) | HK1094470A1 (zh) |
WO (1) | WO2005106717A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521725B1 (en) | 2003-12-03 | 2013-08-27 | Google Inc. | Systems and methods for improved searching |
US7765200B2 (en) * | 2005-03-25 | 2010-07-27 | International Business Machines Corporation | SQL query problem determination tool |
US8346791B1 (en) | 2008-05-16 | 2013-01-01 | Google Inc. | Search augmentation |
US20100241893A1 (en) * | 2009-03-18 | 2010-09-23 | Eric Friedman | Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment |
US9760658B2 (en) * | 2009-10-08 | 2017-09-12 | Oracle International Corporation | Memory-mapped objects |
US8346792B1 (en) | 2010-11-09 | 2013-01-01 | Google Inc. | Query generation using structural similarity between documents |
US20120173516A1 (en) * | 2010-12-31 | 2012-07-05 | Emc Corporation | Work file recycling |
US10031944B1 (en) * | 2010-12-31 | 2018-07-24 | EMC IP Holding Company LLC | Work file change detection |
US9116955B2 (en) * | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
US8965879B2 (en) | 2011-06-03 | 2015-02-24 | Microsoft Technology Licensing, Llc | Unique join data caching method |
JP5919825B2 (ja) | 2012-01-05 | 2016-05-18 | 富士通株式会社 | データ処理方法、分散処理システムおよびプログラム |
US9251209B2 (en) | 2012-03-15 | 2016-02-02 | International Business Machines Corporation | Autonomic caching for in memory data grid query processing |
CN102880629B (zh) * | 2012-06-20 | 2015-06-03 | 杜小勇 | 概率数据库加速查询方法 |
US9317554B2 (en) * | 2012-09-26 | 2016-04-19 | Microsoft Technology Licensing, Llc | SQL generation for assert, update and delete relational trees |
US10628417B2 (en) * | 2013-12-01 | 2020-04-21 | Paraccel Llc | Physical planning of database queries using partial solutions |
JP6319694B2 (ja) * | 2015-08-11 | 2018-05-09 | 日本電信電話株式会社 | データキャッシュ方法、ノード装置及びプログラム |
US10740316B2 (en) * | 2015-10-14 | 2020-08-11 | Dr Holdco 2, Inc. | Cache optimization for data preparation |
US10642814B2 (en) * | 2015-10-14 | 2020-05-05 | Paxata, Inc. | Signature-based cache optimization for data preparation |
US11169978B2 (en) | 2015-10-14 | 2021-11-09 | Dr Holdco 2, Inc. | Distributed pipeline optimization for data preparation |
US10642815B2 (en) * | 2015-10-14 | 2020-05-05 | Paxata, Inc. | Step editor for data preparation |
US11288447B2 (en) * | 2015-10-14 | 2022-03-29 | Dr Holdco 2, Inc. | Step editor for data preparation |
US11074254B2 (en) * | 2016-03-23 | 2021-07-27 | International Business Machines Corporation | Performance management using thresholds for queries of a service for a database as a service |
CN107402926B (zh) | 2016-05-18 | 2021-02-23 | 华为技术有限公司 | 一种查询方法以及查询设备 |
JP6072334B1 (ja) | 2016-06-09 | 2017-02-01 | 株式会社Cygames | 情報処理システム及び方法、並びにプログラム |
US10769134B2 (en) | 2016-10-28 | 2020-09-08 | Microsoft Technology Licensing, Llc | Resumable and online schema transformations |
CN108038215A (zh) * | 2017-12-22 | 2018-05-15 | 上海达梦数据库有限公司 | 数据处理方法及系统 |
WO2021019089A1 (en) | 2019-07-31 | 2021-02-04 | Sindice Limited T/A Siren | Semantic caching of semi-join operators in shared-nothing and log-structured databases |
CN111753028B (zh) * | 2020-07-02 | 2023-08-25 | 上海达梦数据库有限公司 | 数据传输方法、装置、设备及存储介质 |
JPWO2022079856A1 (zh) * | 2020-10-15 | 2022-04-21 | ||
US11567938B1 (en) * | 2021-07-20 | 2023-01-31 | Sap Se | Intelligent query plan cache size management |
Family Cites Families (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5241305A (en) | 1987-05-15 | 1993-08-31 | Newspager Corporation Of America | Paper multi-level group messaging with group parsing by message |
GB8719572D0 (en) * | 1987-08-19 | 1987-09-23 | Krebs M S | Sigscan text retrieval system |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5265221A (en) | 1989-03-20 | 1993-11-23 | Tandem Computers | Access restriction facility method and apparatus |
DE69032576T2 (de) * | 1990-02-27 | 1999-04-15 | Oracle Corp | Dynamische Optimierung eines einzelnen relationalen Zugriffs |
US5748899A (en) | 1990-09-07 | 1998-05-05 | Lowry Computer Products, Inc. | Method and system for collecting and processing bar code data |
JP3258063B2 (ja) * | 1992-02-07 | 2002-02-18 | 新日鉄ソリューションズ株式会社 | データベース検索システム及び方法 |
US5276901A (en) | 1991-12-16 | 1994-01-04 | International Business Machines Corporation | System for controlling group access to objects using group access control folder and group identification as individual user |
US5428778A (en) | 1992-02-13 | 1995-06-27 | Office Express Pty. Ltd. | Selective dissemination of information |
CA2079351A1 (en) | 1992-02-19 | 1993-08-20 | Bruce A. Tate | Scaled depiction of information from a database |
US5412804A (en) * | 1992-04-30 | 1995-05-02 | Oracle Corporation | Extending the semantics of the outer join operator for un-nesting queries to a data base |
GB2297180B (en) * | 1993-09-27 | 1998-05-20 | Oracle Corp | Method and apparatus for parallel processing in a database system |
US5581704A (en) * | 1993-12-06 | 1996-12-03 | Panasonic Technologies, Inc. | System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client |
GB9402935D0 (en) | 1994-02-16 | 1994-04-06 | British Telecomm | A method for controlling access to a database |
CA2138302C (en) | 1994-12-15 | 1999-05-25 | Michael S. Fortinsky | Provision of secure access to external resources from a distributed computing environment |
US5751949A (en) | 1995-05-23 | 1998-05-12 | Mci Corporation | Data security system and method |
JP3738787B2 (ja) | 1995-10-19 | 2006-01-25 | 富士ゼロックス株式会社 | 資源管理装置及び資源管理方法 |
US5999946A (en) * | 1996-04-10 | 1999-12-07 | Harris Corporation | Databases in telecommunications |
US5903898A (en) * | 1996-06-04 | 1999-05-11 | Oracle Corporation | Method and apparatus for user selectable logging |
US5761654A (en) * | 1996-06-05 | 1998-06-02 | Oracle Corporation | Memory structure and method for tuning a database statement using a join-tree data structure representation, including selectivity factors, of a master table and detail table |
US5802523A (en) * | 1996-06-21 | 1998-09-01 | Oracle Corporation | Method and apparatus for reducing the memory required to store bind variable descriptors in a database |
US5870743A (en) * | 1996-06-24 | 1999-02-09 | Oracle Corporation | Method and apparatus for parallelizing operations that create a table |
JP3747525B2 (ja) | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | 並列データベースシステム検索方法 |
US6212578B1 (en) * | 1996-09-09 | 2001-04-03 | Oracle Corporation | Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls |
US5819256A (en) * | 1996-11-20 | 1998-10-06 | Oracle Corporation | Method and apparatus for processing count statements in a database system |
US5907297A (en) * | 1997-02-28 | 1999-05-25 | Oracle Corporation | Bitmap index compression |
US6081800A (en) * | 1997-02-28 | 2000-06-27 | Oracle Corporation | Creating bitmaps from multi-level identifiers |
US5924088A (en) * | 1997-02-28 | 1999-07-13 | Oracle Corporation | Index selection for an index access path |
US6067540A (en) * | 1997-02-28 | 2000-05-23 | Oracle Corporation | Bitmap segmentation |
US5884307A (en) * | 1997-02-28 | 1999-03-16 | Oracle Corporation | Updating bitmapped indexes |
US5822748A (en) * | 1997-02-28 | 1998-10-13 | Oracle Corporation | Group by and distinct sort elimination using cost-based optimization |
US5903888A (en) * | 1997-02-28 | 1999-05-11 | Oracle Corporation | Method and apparatus for using incompatible types of indexes to process a single query |
US5848408A (en) * | 1997-02-28 | 1998-12-08 | Oracle Corporation | Method for executing star queries |
US5899988A (en) * | 1997-02-28 | 1999-05-04 | Oracle Corporation | Bitmapped indexing with high granularity locking |
US6141656A (en) * | 1997-02-28 | 2000-10-31 | Oracle Corporation | Query processing using compressed bitmaps |
US5963935A (en) * | 1997-02-28 | 1999-10-05 | Oracle Corporation | Combining bitmaps within a memory limit |
EP1306684B1 (en) * | 1997-04-25 | 2005-03-30 | Matsushita Electric Industrial Co., Ltd. | Method of test sequence generation |
US5963932A (en) * | 1997-04-29 | 1999-10-05 | Oracle Corporation | Method and apparatus for transforming queries |
US5842220A (en) * | 1997-05-02 | 1998-11-24 | Oracle Corporation | Methods and apparatus for exposing members of an object class through class signature interfaces |
US5875445A (en) * | 1997-05-29 | 1999-02-23 | Oracle Corporation | Performance-related estimation using pseudo-ranked trees |
US5956704A (en) * | 1997-06-05 | 1999-09-21 | Oracle Corporation | Method and apparatus for parallelizing operations that insert data into an existing data container |
US5937409A (en) * | 1997-07-25 | 1999-08-10 | Oracle Corporation | Integrating relational databases in an object oriented environment |
US6691118B1 (en) * | 1997-10-31 | 2004-02-10 | Oracle International Corporation | Context management system for modular software architecture |
US6026391A (en) * | 1997-10-31 | 2000-02-15 | Oracle Corporation | Systems and methods for estimating query response times in a computer system |
US6275830B1 (en) * | 1998-03-18 | 2001-08-14 | Oracle Corporation | Compile time variable size paging of constant pools |
US6167517A (en) * | 1998-04-09 | 2000-12-26 | Oracle Corporation | Trusted biometric client authentication |
US6341281B1 (en) * | 1998-04-14 | 2002-01-22 | Sybase, Inc. | Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree |
US6182277B1 (en) * | 1998-04-15 | 2001-01-30 | Oracle Corporation | Methods and apparatus for declarative programming techniques in an object oriented environment |
US6134559A (en) * | 1998-04-27 | 2000-10-17 | Oracle Corporation | Uniform object model having methods and additional features for integrating objects defined by different foreign object type systems into a single type system |
EP0961210A1 (en) * | 1998-05-29 | 1999-12-01 | Xerox Corporation | Signature file based semantic caching of queries |
US6163858A (en) * | 1998-06-08 | 2000-12-19 | Oracle Corporation | Diagnostic methodology for debugging integrated software |
US6138120A (en) * | 1998-06-19 | 2000-10-24 | Oracle Corporation | System for sharing server sessions across multiple clients |
US6510504B2 (en) * | 1998-06-29 | 2003-01-21 | Oracle Corporation | Methods and apparatus for memory allocation for object instances in an object-oriented software environment |
US6219666B1 (en) * | 1998-07-13 | 2001-04-17 | Oracle Corporation | Autonomous transactions in a database system |
US6578037B1 (en) | 1998-10-05 | 2003-06-10 | Oracle Corporation | Partitioned access control to a database |
US6487552B1 (en) * | 1998-10-05 | 2002-11-26 | Oracle Corporation | Database fine-grained access control |
US6813617B2 (en) | 1998-10-05 | 2004-11-02 | Oracle International Corporation | Dynamic generation of optimizer hints |
US7228300B2 (en) | 1998-10-05 | 2007-06-05 | Oracle International Corporation | Caching the results of security policy functions |
US6304974B1 (en) * | 1998-11-06 | 2001-10-16 | Oracle Corporation | Method and apparatus for managing trusted certificates |
US6321238B1 (en) * | 1998-12-28 | 2001-11-20 | Oracle Corporation | Hybrid shared nothing/shared disk database system |
US6477525B1 (en) * | 1998-12-28 | 2002-11-05 | Oracle Corporation | Rewriting a query in terms of a summary based on one-to-one and one-to-many losslessness of joins |
US6496819B1 (en) | 1998-12-28 | 2002-12-17 | Oracle Corporation | Rewriting a query in terms of a summary based on functional dependencies and join backs, and based on join derivability |
US6341340B1 (en) * | 1998-12-28 | 2002-01-22 | Oracle Corporation | Transitioning ownership of data items between ownership groups |
US5991754A (en) * | 1998-12-28 | 1999-11-23 | Oracle Corporation | Rewriting a query in terms of a summary based on aggregate computability and canonical format, and when a dimension table is on the child side of an outer join |
US6351742B1 (en) * | 1999-03-18 | 2002-02-26 | Oracle Corporation | Method and mechanism for database statement optimization |
US6401083B1 (en) * | 1999-03-18 | 2002-06-04 | Oracle Corporation | Method and mechanism for associating properties with objects and instances |
US6529885B1 (en) * | 1999-03-18 | 2003-03-04 | Oracle Corporation | Methods and systems for carrying out directory-authenticated electronic transactions including contingency-dependent payments via secure electronic bank drafts |
US6370522B1 (en) * | 1999-03-18 | 2002-04-09 | Oracle Corporation | Method and mechanism for extending native optimization in a database system |
US6487641B1 (en) * | 1999-04-19 | 2002-11-26 | Oracle Corporation | Dynamic caches with miss tables |
US6314419B1 (en) * | 1999-06-04 | 2001-11-06 | Oracle Corporation | Methods and apparatus for generating query feedback based on co-occurrence patterns |
US6418430B1 (en) * | 1999-06-10 | 2002-07-09 | Oracle International Corporation | System for efficient content-based retrieval of images |
US6466931B1 (en) * | 1999-07-30 | 2002-10-15 | International Business Machines Corporation | Method and system for transparently caching and reusing query execution plans efficiently |
US6601071B1 (en) * | 1999-08-04 | 2003-07-29 | Oracle International Corp. | Method and system for business to business data interchange using XML |
US6549916B1 (en) * | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US6665684B2 (en) | 1999-09-27 | 2003-12-16 | Oracle International Corporation | Partition pruning with composite partitioning |
US6609131B1 (en) * | 1999-09-27 | 2003-08-19 | Oracle International Corporation | Parallel partition-wise joins |
US7093137B1 (en) | 1999-09-30 | 2006-08-15 | Casio Computer Co., Ltd. | Database management apparatus and encrypting/decrypting system |
US6493710B1 (en) * | 1999-10-04 | 2002-12-10 | Oracle Corporation | Method and apparatus for reducing costs associated with manipulating data |
JP4552242B2 (ja) * | 1999-10-06 | 2010-09-29 | 株式会社日立製作所 | 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法 |
US6484179B1 (en) * | 1999-10-25 | 2002-11-19 | Oracle Corporation | Storing multidimensional data in a relational database management system |
US6546382B1 (en) * | 1999-11-03 | 2003-04-08 | Oracle Corporation | Finding the TOP N values through the execution of a query |
US6684203B1 (en) * | 1999-11-08 | 2004-01-27 | Oracle International Corporation | Using global temporary tables to transform queries |
US6421666B1 (en) * | 1999-11-08 | 2002-07-16 | Oracle Corporation | Mechanism for sharing ancillary data between a family of related functions |
US6430550B1 (en) * | 1999-12-03 | 2002-08-06 | Oracle Corporation | Parallel distinct aggregates |
US6546394B1 (en) * | 1999-12-28 | 2003-04-08 | Oracle International Corporation | Database system having logical row identifiers |
US6658405B1 (en) | 2000-01-06 | 2003-12-02 | Oracle International Corporation | Indexing key ranges |
US6671715B1 (en) | 2000-01-21 | 2003-12-30 | Microstrategy, Inc. | System and method for automatic, real-time delivery of personalized informational and transactional data to users via high throughput content delivery device |
US6457020B1 (en) * | 2000-03-20 | 2002-09-24 | International Business Machines Corporation | Query optimization using a multi-layered object cache |
US20020001307A1 (en) * | 2000-05-20 | 2002-01-03 | Equipe Communications Corporation | VPI/VCI availability index |
US6332198B1 (en) * | 2000-05-20 | 2001-12-18 | Equipe Communications Corporation | Network device for supporting multiple redundancy schemes |
US6986060B1 (en) | 2000-05-23 | 2006-01-10 | Oracle International Corp. | Method and apparatus for sharing a security context between different sessions on a database server |
AU2002222963B2 (en) * | 2000-07-13 | 2007-05-10 | Oracle International Corporation | Performing spreadsheet-like calculations in a database system |
US6684207B1 (en) * | 2000-08-01 | 2004-01-27 | Oracle International Corp. | System and method for online analytical processing |
US6622138B1 (en) * | 2000-09-06 | 2003-09-16 | Oracle International Corporation | Method and apparatus for optimizing computation of OLAP ranking functions |
US6581055B1 (en) * | 2000-09-11 | 2003-06-17 | Oracle International Corporation | Query optimization with switch predicates |
US20020095405A1 (en) | 2001-01-18 | 2002-07-18 | Hitachi America, Ltd. | View definition with mask for cell-level data access control |
US7162467B2 (en) * | 2001-02-22 | 2007-01-09 | Greenplum, Inc. | Systems and methods for managing distributed database resources |
US6732085B1 (en) * | 2001-05-31 | 2004-05-04 | Oracle International Corporation | Method and system for sample size determination for database optimizers |
US6691099B1 (en) * | 2001-05-31 | 2004-02-10 | Oracle International Corporation | Method and system for histogram determination in a database |
US6741997B1 (en) * | 2001-06-14 | 2004-05-25 | Oracle International Corporation | Instantiating objects in distributed database systems |
GB2378534B (en) * | 2001-08-03 | 2003-08-20 | Oracle Corp | SQL execution analysis |
JP2003108561A (ja) * | 2001-09-28 | 2003-04-11 | Kawasaki Steel Systems R & D Corp | データベース検索システム |
US6615206B1 (en) | 2001-09-28 | 2003-09-02 | Oracle International Corporation | Techniques for eliminating database table joins based on a join index |
WO2003038669A1 (en) | 2001-11-01 | 2003-05-08 | Sun Microsystems, Inc. | Directory request caching in distributed computer systems |
JP4162184B2 (ja) * | 2001-11-14 | 2008-10-08 | 株式会社日立製作所 | データベース管理システムの実行情報を取得する手段を有する記憶装置 |
US6738762B1 (en) * | 2001-11-26 | 2004-05-18 | At&T Corp. | Multidimensional substring selectivity estimation using set hashing of cross-counts |
US7152048B1 (en) * | 2002-02-07 | 2006-12-19 | Oracle International Corporation | Memphis: multiple electronic money payment highlevel integrated security |
US7337226B2 (en) | 2002-05-10 | 2008-02-26 | Oracle International Corporation | Method and mechanism for implementing dynamic sizing of session pools |
US7103608B1 (en) * | 2002-05-10 | 2006-09-05 | Oracle International Corporation | Method and mechanism for storing and accessing data |
US7035846B2 (en) * | 2002-09-23 | 2006-04-25 | International Business Machines Corporation | Methods, computer programs and apparatus for caching directory queries |
US20040064441A1 (en) * | 2002-09-27 | 2004-04-01 | Tow Daniel S. | Systems and methods for providing structured query language optimization |
US7320010B2 (en) * | 2002-11-18 | 2008-01-15 | Innopath Software, Inc. | Controlling updates of electronic files |
US20040139043A1 (en) | 2003-01-13 | 2004-07-15 | Oracle International Corporation | Attribute relevant access control policies |
US7194451B2 (en) * | 2004-02-26 | 2007-03-20 | Microsoft Corporation | Database monitoring system |
US7158966B2 (en) * | 2004-03-09 | 2007-01-02 | Microsoft Corporation | User intent discovery |
-
2004
- 2004-04-22 US US10/830,510 patent/US7676453B2/en active Active
-
2005
- 2005-04-20 AU AU2005239366A patent/AU2005239366B2/en active Active
- 2005-04-20 JP JP2007509641A patent/JP4856627B2/ja active Active
- 2005-04-20 CN CNB2005800125059A patent/CN100476817C/zh active Active
- 2005-04-20 EP EP05737665A patent/EP1738290B1/en active Active
- 2005-04-20 WO PCT/US2005/013648 patent/WO2005106717A1/en not_active Application Discontinuation
- 2005-04-20 DE DE602005008030T patent/DE602005008030D1/de active Active
- 2005-04-20 CA CA2562281A patent/CA2562281C/en active Active
-
2007
- 2007-02-07 HK HK07101423A patent/HK1094470A1/xx unknown
Non-Patent Citations (4)
Title |
---|
MULTI LEVEL CACHING TO SPEEDUPQUERY PROCESSING IN DISTRIBUTED DATABASE. Doaa S.EI Zanfaly, Ahmed S.Eldean, Reda A.Ammar.SIGNAL PROCESSING AND INFORMATION TECHNOLOGY. 2003 |
MULTI LEVEL CACHING TO SPEEDUPQUERY PROCESSING IN DISTRIBUTED DATABASE. Doaa S.EI Zanfaly, Ahmed S.Eldean, Reda A.Ammar.SIGNAL PROCESSING AND INFORMATION TECHNOLOGY. 2003 * |
Query Scheduling in Multi Query Optimization. Amit Gupta, S.Sudarshan, Sundar Vishwanathan.DATABASE ENGINEERING & APPLICATIONS. 2001 |
Query Scheduling in Multi Query Optimization. Amit Gupta, S.Sudarshan, Sundar Vishwanathan.DATABASE ENGINEERING & APPLICATIONS. 2001 * |
Also Published As
Publication number | Publication date |
---|---|
JP2007534087A (ja) | 2007-11-22 |
EP1738290A1 (en) | 2007-01-03 |
AU2005239366B2 (en) | 2010-07-01 |
DE602005008030D1 (de) | 2008-08-21 |
CN1947118A (zh) | 2007-04-11 |
CA2562281A1 (en) | 2005-11-10 |
WO2005106717A1 (en) | 2005-11-10 |
US7676453B2 (en) | 2010-03-09 |
CA2562281C (en) | 2011-11-08 |
US20050240570A1 (en) | 2005-10-27 |
EP1738290B1 (en) | 2008-07-09 |
AU2005239366A1 (en) | 2005-11-10 |
HK1094470A1 (en) | 2007-03-30 |
JP4856627B2 (ja) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100476817C (zh) | 部分查询缓存 | |
CN100481070C (zh) | 搜索条件的逐渐放宽 | |
CN100498684C (zh) | 根据排序付费的搜索系统中的位置报价 | |
US8977618B2 (en) | Intelligent job matching system and method | |
CN101432714B (zh) | 自动生成推荐链接的方法和设备 | |
US20020059204A1 (en) | Distributed search system and method | |
US20080071751A1 (en) | Method and apparatus for applying a parametric search methodology to a directory tree database format | |
US20060265268A1 (en) | Intelligent job matching system and method including preference ranking | |
US20120239679A1 (en) | System to generate related search queries | |
US20090132529A1 (en) | Method and System for URL Autocompletion Using Ranked Results | |
US20060265269A1 (en) | Intelligent job matching system and method including negative filtration | |
KR20060117978A (ko) | 측면 검색 | |
US7444344B2 (en) | Method to increase subscription scalability | |
CN102262650A (zh) | 链接的数据库 | |
CA2413016A1 (en) | Method of and system for determining connections between parties over a network | |
CN101563687A (zh) | 企业收录搜索 | |
CN104182405A (zh) | 一种连接查询方法及装置 | |
US20020184203A1 (en) | Process for electronically marketing goods or services on networks of the internet type | |
CN112269816B (zh) | 一种政务预约事项相关性检索方法 | |
CN101164067A (zh) | 通过合并用户输入信息来进行搜索的方法和系统 | |
US20070288248A1 (en) | System and method for online service of web wide datasets forming, joining and mining | |
US20040214554A1 (en) | Wireless paging directory assistant | |
US20170242836A1 (en) | Architecture, system and method for storing files and data in organized grid format | |
US20210374117A1 (en) | Artificially-intelligent, continuously-updating, centralized-database-identifier repository system | |
US6704731B2 (en) | Conditional reply processing method, conditional reply giving agent system device, and program storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |