处理数据库查询结果集的方法和设备技术

技术编号:10160014 阅读:106 留言:0更新日期:2014-07-01 14:47
本发明专利技术的实施方式提供一种处理数据库查询结果集的方法。该方法包括读取所述数据库查询结果集的所有原始数据;生成多个事件,其中所述多个事件中的每个事件包括至少指示该事件序号的标头信息以及主体信息,所述主体信息包括对应于所述数据库查询结果集的至少部分原始数据;对所述多个事件进行并行处理以返回各个事件的处理结果;以及按照所述事件标头信息对返回的事件处理结果进行排序。本发明专利技术的其它实施方式还提供相应的数据库客户端和计算机程序产品。

【技术实现步骤摘要】
【专利摘要】本专利技术的实施方式提供一种处理数据库查询结果集的方法。该方法包括读取所述数据库查询结果集的所有原始数据;生成多个事件,其中所述多个事件中的每个事件包括至少指示该事件序号的标头信息以及主体信息,所述主体信息包括对应于所述数据库查询结果集的至少部分原始数据;对所述多个事件进行并行处理以返回各个事件的处理结果;以及按照所述事件标头信息对返回的事件处理结果进行排序。本专利技术的其它实施方式还提供相应的数据库客户端和计算机程序产品。【专利说明】处理数据库查询结果集的方法和设备
本专利技术涉及数据库技术,更具体地,涉及处理数据库查询结果集的方法和设备。
技术介绍
在现代企业应用系统中,数据库管理系统(DBMS)占据了非常重要的位置,大多数应用需要向数据库存储持久化数据。对于这些应用,应用自身和数据库的设计及运行时环境均是关乎系统性能的重要因素。但是,在某些情形下,应用和数据库之间的连接方式和操作机制,特别是对于数据库查询结果集的处理方法,也是影响系统性能至关重要的因素。每一种编程语言均具有其数据库访问接口或者标准。例如,在Java EE技术中,Java Database Connectivity (JDBC)被设计为用于向数据库添加、修改、去除以及查询数据的标准应用编程接口(API);由微软(Microsoft? )公司提出的Open DatabaseConnectivity(ODBC)是另一种提供连接性的标准。这些接口和组件已经被广泛地用于实践中,并且它们在与数据库的交互和处理方式上具有大致相同的机制。图1示意性描述了使用现有技术(例如JDBC)的数据库客户端对数据库执行查询操作的处理流程。如图1所示,在步骤S110,数据库客户端打开到数据库服务器的连接。接着在步骤S120,由数据库服务器执行请求的查询操作。在步骤S130,返回表示查询结果的查询结果集。步骤S140示出了在现有技术中在数据库客户端中处理数据库查询结果集的流程。在现有技术方案中,对于查询结果集的处理是串行执行的。只有在当前行已经被解析和读取后,用户才能移动光标到下一行接着处理。在步骤S141中,以串行方式逐行加载原始数据流,解析从数据库服务器返回的数据库查询结果集。在步骤S142-S144中示意性地示出了逐行读取查询结果集数据进行处理的串行过程。在步骤S150中,数据库客户端读取完毕后关闭与数据库服务器的连接。许多查询操作需要一次性返回大量的数据记录,例如业务报表、数据分析、商业智能以及业务要求的一次性查询显示大量数据。这时,现有的串行处理过程所耗费的时间会随着返回的数据量成线性增长。特别地,当应用需要从数据库查询大量数据,且要求很小的响应时间时,现有的串行处理机制将无法满足需要。而且,现有的处理机制虽然简单易行,但是其单线程的运行方式无法充分利用现代多核处理器所带来的处理性能的扩展。在现有技术中没有提供解决上述技术问题的解决方案。
技术实现思路
为了解决现有技术中存在的问题,本专利技术的实施方式提供一种用于处理数据库查询结果集的解决方案,其中通过事件驱动来执行对于数据库查询结果集的并行处理。根据本专利技术的一个方面,提供了一种用于处理数据库查询结果集的方法。该方法包括读取数据库查询结果集的所有原始数据;生成多个事件,其中多个事件中的每个事件包括至少指示该事件序号的标头信息以及主体信息,该主体信息包括对应于数据库查询结果集的至少部分原始数据;对多个事件进行并行处理以返回各个事件的处理结果;以及按照标头信息对返回的事件处理结果进行排序。根据本专利技术的另一个方面,提供了一种数据库客户端。该数据库客户端包括执行结果管理器,被配置用于读取数据库查询结果集的所有原始数据,并且被配置用于生成多个事件,其中多个事件中的每个事件包括至少指示该事件序号的标头信息以及主体信息,该主体信息包括对应于数据库查询结果集的至少部分原始数据;事件处理管理器,被配置用于对多个事件进行并行处理以向执行结果管理器返回各个事件的处理结果,其中执行结果管理器还被配置用于按照标头信息对返回的事件处理结果进行排序。根据本专利技术的另一个方面,提供了一种用于处理数据库查询结果集的装置。该用于处理数据库查询结果集的装置包括用于读取数据库查询结果集的所有原始数据的装置;用于生成多个事件的装置,其中多个事件中的每个事件包括至少指示该事件序号的标头信息以及主体信息,主体信息包括对应于数据库查询结果集的至少部分原始数据;用于对多个事件进行并行处理以返回各个事件的处理结果的装置;以及用于按照标头信息对返回的事件处理结果进行排序的装置。根据本专利技术的另一个方面,提供了一种计算机程序产品。该计算机程序产品包括可由处理器执行的计算机程序代码,当通过处理器运行计算机程序代码时能够执行根据本专利技术实施方式的用于处理数据库查询结果集的方法。【专利附图】【附图说明】通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1示意性描述了使用现有技术(例如JDBC)的数据库客户端对数据库执行查询操作的处理流程。图2示出了适于用来实现本专利技术实施方式的示例性计算机系统/服务器12的框图。图3示出了根据本专利技术一个实施方式的用于处理数据库查询结果集的方法的流程图。图4示出了根据本专利技术一个实施方式的事件实例的数据结构。图5示出了根据本专利技术一个实施方式的数据库客户端的架构的框图。【具体实施方式】下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。所属
的技术人员知道,本专利技术可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本专利技术还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——本文档来自技高网
...
处理数据库查询结果集的方法和设备

【技术保护点】
一种用于处理数据库查询结果集的方法,包括:读取所述数据库查询结果集的所有原始数据;生成多个事件,其中所述多个事件中的每个事件包括至少指示该事件序号的标头信息以及主体信息,所述主体信息包括对应于所述数据库查询结果集的至少部分原始数据;对所述多个事件进行并行处理以返回各个事件的处理结果;以及按照所述标头信息对返回的事件处理结果进行排序。

【技术特征摘要】

【专利技术属性】
技术研发人员:郑王力王夕宁孙杰赵忠
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1