用于优化数据存储上的查询执行的方法_4

文档序号:9872440阅读:来源:国知局
]}ON COLUMNS,
[0061][Time].[All Years].Student,ON ROWS
[0062]From[Market]
[0063]where[Time].[Years].Student in{2003,2006}
[0064]查询2要求在2003、2004......2006年的市场中涉及的学生的记录。这里,筛选值是 2003、2004......2006年。
[0065]查询3指定其要求为:
[0066]查询3:
[0067]Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[0068][Time].[All Years].Student,ON ROWS
[0069]From[Market]
[0070]where[Markets].Student in{EMEA}
[0071 ] 查询3要求EMEA的市场中涉及的学生的记录。这里,筛选值是EMEA。以及
[0072]查询4指定其要求为:
[0073]查询4:
[0074]Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[0075][Time].[All Years].Student,ON ROWS
[0076]From[Market]
[0077]where[Time].[Years].Student in{2003}
[0078]查询4要求在2003年的市场中涉及的学生的记录。这里,筛选值是2003年。
[0079]接收模块504将上述四个查询排列到队列504a中。假设计时器502a设置为30毫秒,并且接收模块504接收的所有上述四个查询(查询I到查询4)都排列到队列504a中。那么当过了 30毫秒,分组模块506处理这四个查询以基于它们的筛选值将它们划分到一个或多个分组列表。查询IA和查询IB被置入同一个分组列表506a,因为它们是查询I的子查询。在实施例中,直到子查询被处理,主查询I的结果才能发布,并且似乎不与队列504a中的任何其他查询类似。在实施例中,查询IA和查询IB的结果一起向实体查询I提供结果。查询2和查询4的筛选值的类别相似。因此,查询2和查询4被一起划分到分组列表506b中。查询3定义的筛选值EMEA与查询1、查询2或查询4的任一查询都不相似。因此,查询3被划分到单独的分组列表506c中。图12详细说明了分组列表的执行。
[0080]图12所示为根据本发明的实施例的描述为分为一组的一个或多个查询扫描数据存储406的示例图。具体来说,说明了如图11所示的划分到分组列表506b中的查询2和查询4的执行。划分到分组列表506b中的查询2和查询4的执行涉及在数据存储406上进行的扫描。数据存储406包括N个块,这些块包括与学生有关的信息。查询2和查询4的扫描涉及确定扫描范围。因此,根据查询2和查询4的筛选值,扫描范围标识符模块802确定扫描范围为2003、
2004......2006年。现在,扫描模块804通读数据存储406,并为查询2和查询4检索2003、
2004......2006年的记录,因为定义的扫描范围是2003、2004......2006年。在将记录转发给记录发布者806之前,扫描模块804检查检索出的记录是否在扫描范围2003、2004......2006年内。检索出的记录被转发给记录发布者806。扫描模块804将2003年的记录转发给记录发布者806,因为读取并检索出的2003年的记录在扫描范围2003、
2004......2006年内。当检索出的记录不在确定的扫描范围内,记录发布者806指示与接收模块504接收的多个查询的一个或多个查询的每个查询相对应的所有查询计算器808,以向一个或多个客户机402提供结果。现在,分别对应查询2和查询4的查询计算器808从记录发布者806接收检索出的记录。在实施例中,当接收模块504接收查询1、查询2......查询4时,
每个查询都配置了各自的查询计算器。例如,这里,查询2和查询4配置了查询计算器2和查询计算器4。查询计算器808验证检索出的2003年的记录是否分别于查询2和查询4的筛选值相匹配,以符合查询2和查询4的响应。当检索出的记录分别与查询2(具有筛选值2003年)和查询4(具有筛选值2003、2004......2006年)的筛选值“2003”相匹配时,分别对应于查询2
和查询4的查询计算器808的数据聚合器808a聚合2003年的查询结果。同样的方式,检索并匹配2004年到2006年的记录,并聚合这些记录以作为按查询2和查询4的筛选值的查询结果。在这种情况下,记录发布者806发布的记录不提取对应于它的一个或多个元数据的记录匹配或提供不在一个或多个元数据中的多个记录,随后查询计算器808从任何一个记录都与其一个或多个元数据相匹配的记录中提供聚合的结果,如记录发布者806所发布的。例如,当处理查询4的扫描时,2006年的记录不在扫描范围2003、2004......2006年内。因此,
查询4的查询计算器基于提取的2003年的记录发布结果,如记录发布者806所发布的结果。
[0081]通过使用标准编程和/或工程技术来产生软件、固件、硬件或者它们的任何组合,所述操作可以作为方法、装置或制品来实施。所述操作可作为“非瞬时计算机可读介质”中保存的代码来实施,其中处理器可从计算机可读介质中读取和执行代码。处理单元为微处理器和能够处理和执行查询的处理器中的至少一个。非瞬时计算机可读介质可包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储器(CD-R0M、DVD、光盘等)、易失性和非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)等的介质。建议在说明书中进一步指明,非瞬时计算机可读介质包括除瞬时传播信号外的所有计算机可读介质。实施所述操作的代码可进一步在硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实施。另外,实施所述操作的代码可在“传输信号”中实施,其中传输信号可通过空间或通过例如光纤、铜线等传输介质来传播。编码有代码或逻辑的传输信号还可包括无线信号、卫星传输、无线电波、红外信号、蓝牙等。编码有代码或逻辑的传输信号能够由发射站发送并由接收站接收,其中可在接收站或者接收设备以及发射站或者发射设备处的硬件或非瞬时计算机可读介质中对传输信号中编码的代码或逻辑进行解码和存储。“制品”包括可实施代码的非瞬时计算机可读介质、硬件逻辑和/或传输信号。对实施所述操作的实施例的代码进行编码的设备可包括计算机可读介质或硬件逻辑。当然,本领域技术人员将认识到,在不脱离本发明范围的情况下,可以对这一配置进行多处修改,并且制品可以包括本领域中已知的合适的信息承载介质。
[0082]除非另有明确规定,否则术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”意味着“本发明的一个或多个(但不是全部)实施例”。
[0083]除非另有明确规定,否则术语“包含”、“包括”、“具有”及其变形意味着“包括但不限于”。
[0084]除非另有明确规定,否则枚举的项目列表并不意味着这些项目中的任何项目或所有项目是互斥的。
[0085]除非另有明确规定,否则术语“一”、“一个”和“所述”意味着“一个或多个”。
[0086]除非另有明确规定,否则相互通信的设备不必连续地相互通信。另外,相互通信的设备可以直接通信或通过一个或多个中间媒介间接地通信。
[0087]具有相互通信的多个部件的实施例的描述并不意味着需要所有这些部件。相反,描述多种可选部件来说明本发明的许多种可能的实施例。
[0088]另外,尽管可按顺序来描述过程步骤、方法步骤、算法等,但是可将这些过程、方法和算法配置为按照替代的顺序来工作。换句话说,可能描述的步骤的任何序列或顺序并非必然地表明要求以该顺序来执行这些步骤。可按照任何实际的顺序来执行本文所述的过程步骤。此外,一些步骤可同时执行。
[0089]虽然本文描述了单个设备或制品,但显然可以使用不止一个设备/制品(无论它们是否进行协作)来代替单个设备/制品。类似地,本文描述了不止一个设备或制品时(不论它们是否协作),但显然可以使用单个设备/制品来代替不止一个设备或制品,或者可以使用不同数量的设备/制品,而不是所示数量的设备或程序。设备的功能和/或特征可替代性地由没有明确地描述为具有这种功能/特征的一个或多个其他设备来实施。因此,本发明的其它实施例不必包括设备本身。
[0090]图9和10所示的操作示出了以某个次序发生的某些事件。在替代性实施例中,某些操作可以用不同的顺序来执行、修改或移除。另外,可以在上述逻辑中添加步骤,而这些步骤仍然遵循所述实施例。此外,本文所述的操作可以依次发生,或者某些操作可并行处理。另外,可由单个处理单元或者由分布式处理单元来执行操作。
[0091]本发明的各种实施例的上述描述仅出于说明性和描述性目的。其并非旨在穷尽或将本发明限制为所公开的精确形式。根据上述教导,许多修改和变更是可能的。本文的描述旨在不由具体的描述来限制本发明的范围,而是由所附的权力要求来进行限制。以上说明书、示例和数据提供了对制造和使用本发明的组成部分的完整描述。由于能够在不脱离本发明的精神和范围的情况下实现本发明的很多实施例,所以本发明由所附权力要求限定。
[0092]此外,本文示出了本发明的优点。
[0093]本发明的实施例减少要为一个或多个查询执行的多次扫描,一个或多个查询要求从数据存储406中待提取的同一部分数据。
[0094]本发明的实施例通过将要求同一部分数据的一个或多个查询一起分组来减少在数据存储406上处理和执行一个或多个查询的延迟。
[0095]本发明的实施例在数据存储406上并行或并发执行划分到一个或多个分组列表下的一个或多个查询,这样减少了处理时间。具体而言,在数据存储406上并行或同时执行包括一个或多个查询的一个或多个分组列表。
[0096]本发明的实施例为每个分组列表在数据存储上执行仅一次扫描。因此,避免了为要求提取同一部分数据的一个或多个查询进行多次扫描。
[0097]最后,已经主要出于可读性和指导的目的而选择说明书中使用的语言,并且它可以尚未被选择用来限定或限制本发明的主题。因此本意在
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1