执行数据查询的方法和装置与流程

文档序号:15797548发布日期:2018-11-02 21:11阅读:190来源:国知局
执行数据查询的方法和装置与流程

本发明涉及计算机领域,尤其涉及一种执行数据查询的方法、装置、电子设备和存储介质。

背景技术

在现实计算环境中,通常计算装置之间需要频繁的进行交互以获取所需的数据。例如,查询请求者计算装置a向查询接收者计算装置b发送查询以请求获取查询结果。目前常用的方案有两种,一种方案是实时查询,即计算装置b在接收到计算装置a的查询后立即搜索查询结果。还有一种方案是周期性的在计算装置b中基于固定的查询获取查询结果,将查询结果放入计算装置b的数据存储模块中,等待其他计算装置的查询。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

实时查询方案的问题是一旦发送的查询的数据量较大,在计算装置b中也需要经过大量的搜索、统计或计算才能得到查询结果,使得计算装置a等待的时间会很长。同时,计算装置b也会因为来自多个计算装置的大量查询而导致响应速度变慢。而且,大量的突发查询还会影响计算装置b正常的业务处理过程。

周期性的在计算装置b中基于固定的查询获取查询结果与实时查询方案相比,在某些情况下能够减少计算装置a对于固定查询的等待时间,同时也能一定程度上减轻因查询导致的计算装置b的压力。但是有一个弊端是计算装置b只能基于固定的查询获取查询结果,不能满足计算装置a所有的查询条件,使得对于某些查询依然需要进行实时查询。同时对于某些不会使用或很少使用的查询也周期性的进行搜索,并且存储相应的查询结果,从而导致计算资源和存储资源的浪费。



技术实现要素:

有鉴于此,本发明实施例提供一种执行数据查询的方法、装置、电子设备和存储介质,能够减少查询请求者的等待时间,减轻查询接收者的压力,同时能够节约并合理利用查询接收者的资源。

为实现上述目的,根据本发明实施例的一个方面,提供了一种执行数据查询的方法。该方法包括:查询请求者接收查询;确定查询结果数据集中是否包括与所述查询对应的查询结果,所述查询结果数据集包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果;响应于确定所述查询结果数据集中包括与所述查询对应的查询结果,将所述查询结果传送给所述查询请求者;以及响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,将所述查询添加到查询数据集,所述查询数据集包括要在所述数据库系统中执行的一个或多个查询。

可选地,所述查询请求者包括常见查询预设模块、查询请求系统以及查询用户中的至少一个。所述常见查询预设模块被配备为管理来自管理者的一个或多个常见查询,包括将来自所述管理者的所述一个或多个常见查询作为预设查询添加到所述查询数据集。所述查询请求系统是需要向所述数据库系统提交一个或多个查询以获取查询结果的独立请求系统。所述查询用户是需要向所述数据库系统提交一个或多个查询以获取查询结果的独立个体用户。

可选地,以预定义的查询周期向所述数据库系统提交所述查询数据集中的一个或多个查询。以及针对所提交的每一个查询,响应于从所述数据库系统接收到与所提交的该查询对应的相应的查询结果,基于所提交的该查询以及所接收到的相应的查询结果更新所述查询结果数据集。

可选地,所述查询结果数据集中的每一个查询结果具有更新次数标记值,并且其中,基于所提交的该查询以及所接收到的相应的查询结果更新所述查询结果数据集包括:确定所述查询结果数据集中是否包括与所提交的查询对应的先前的查询结果,响应于确定所述查询结果数据集中不包括与所提交的查询对应的先前的查询结果,将所接收到的相应的查询结果添加到所述查询结果数据集;响应于确定所述查询结果数据集中包括与所提交的查询对应的先前的查询结果,确定所述查询结果集中包括的所述先前的查询结果与所接收到的相应的查询结果是否相同:响应于确定所述查询结果集中包括的所述先前的查询结果与所接收到的相应的查询结果相同,将所述查询结果集中包括的所述先前的查询结果的更新次数标记值递增1,以及响应于确定所述查询结果集中包括的所述先前的查询结果与所接收到的相应的查询结果不相同,用所接收到的相应的查询结果替换所述查询结果集中包括的所述先前的查询结果。

可选地,所述方法还包括:确定所述查询结果集中的特定查询结果的更新次数标记值是否等于阈值次数,响应于确定所述更新次数标记值等于所述阈值次数,删除所述查询数据集中与所述特定查询结果对应的查询。

可选地,所述预定义的查询周期是管理者设定的或者是基于任务量动态确定的。

可选地,所述方法还包括:针对所述查询数据集中的每一个特定查询,基于接收到所述特定查询的时间、接收到所述特定查询的频率以及所述查询结果数据集中与所述特定查询对应的查询结果的更新频率中的至少一个,在所述查询数据集中对所述特定查询排名;以及按照在所述查询数据集中各个查询的排名顺序来将其提交至所述数据库系统。

可选地,所述方法还包括:响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,将指示需要再次发送所述查询以获取查询结果的通知传送给所述查询请求者。

可选地,所述方法还包括:响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,向所述数据库系统提交所述查询。以及将与所述查询对应的查询结果传送给所述查询请求者。

可选地,所述方法还包括:确定所述查询结果集中的特定查询结果的存龄是否超过阈值时长,所述存龄指示所述特定查询结果的最初创建时间至当前时间的时长。以及响应于确定所述特定查询结果的所述存龄超过所述阈值时长,从所述查询结果数据集中删除所述特定查询结果。

上述发明中的一个实施例具有如下优点或有益效果:因为查询数据集中包括要在所述数据库系统中执行的一个或多个查询,查询结果数据集中包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果,所以当查询请求者提交的查询包括在查询数据集中时,查询请求者不需要等待从数据库系统获取查询结果,而可以直接从查询结果数据集中获取相应的查询结果,因而可以减少查询请求者的等待时间。而且,预先将查询结果添加到查询结果数据集中以供查询,在大量查询请求者同时提交查询或者查询接收者自身任务量很大时,可以减轻查询接收者的压力。此外,当查询请求者提交的查询没有包括在查询数据集中时,在查询数据集中添加查询,使得查询接收者能更好满足查询请求者的查询需求。同时,视需要删除查询数据集中的查询或者查询结果数据集中的查询结果,能够节约查询接收者的存储和处理资源。另一方面,基于查询接收者的任务量动态确定从数据库系统获取查询结果的时间,能够更加合理利用查询接收者的资源。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明的实施例的系统的示意图;

图2是根据本发明的实施例的执行数据查询的方法的流程图;

图3是根据本发明的实施例的执行数据查询的方法的流程图;

图4是根据本发明的实施例的执行数据查询的方法的流程图;

图5是根据本发明实施例的执行数据查询的装置的示意图;

图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明的实施例的系统的示意图,如图1所示,系统包括查询请求者100、计算装置200和数据库300。

查询请求者100可以将查询传送到计算装置200,然后由计算装置200从数据库300获取与所述查询对应的查询结果,并将所述查询结果传送给查询请求者100。

查询请求者100包括常见查询预设模块、查询请求系统以及查询用户中的至少一个。常见查询预设模块被配备为管理来自管理者的一个或多个常见查询,包括将来自所述管理者的所述一个或多个常见查询作为预设查询添加到所述查询数据集。查询请求系统是需要向所述数据库系统提交一个或多个查询以获取查询结果的独立请求系统。所述查询用户是需要向所述数据库系统提交一个或多个查询以获取查询结果的独立个体用户。查询请求者100也可以向计算装置200订阅一个或多个查询。例如,查询请求者100可以一次向计算装置200订阅多个查询,计算装置200定期将与多个查询对应的查询结果传送给查询请求者,而不需要查询请求者每次都单独向计算装置请求查询。查询请求者100所提交的查询可以是一个或多个关键词,也可以是句子。查询可以被预处理以得到具有语义的一个或多个搜索词项。可以从查询中解析出一个或多个条件或者分析、处理命令。

计算装置200包括查询缓存模块211、查询结果缓存模块212、数据搜索模块221和数据计算模块222。计算装置200中还可以包括在图1中未示出的本领域公知的一个或多个其它模块。

查询缓存模块211可以存储查询数据集,所述查询数据集包括要在所述数据库系统中执行的一个或多个查询。查询数据集可以用各种数据结构来实现,例如,队列、hashmap等。所述常见查询预设模块被配备为管理来自管理者的一个或多个常见查询,包括将来自所述管理者的所述一个或多个常见查询作为预设查询添加到所述查询数据集。可以通过管理者将一个或多个常见查询作为预设查询添加到所述查询数据集。常见查询例如基于对查询请求者提交的查询的历史数据的分析而确定的查询请求者未来可能提交的一个或多个查询。

查询数据集中的查询可以基于一个或多个准则而被排名。在一个示例中,可以基于接收到查询的时间来将查询数据集中的查询排名。例如,先接收到的查询排在稍后接收到的查询之前,使得按照接收到查询的先后顺序来向数据库系统提交查询。

在一个示例中,可以基于接收到查询的频率来将查询数据集中的查询排名。例如,如果一个或多个查询请求者频繁地请求某个查询,则可以将该查询排名在前面,使得优先向数据库系统提交该查询。

在一个示例中,可以基于查询结果数据集中与该查询对应的查询结果的更新频率来将查询数据集中的查询排名。例如,如果对于特定查询每次执行搜索时都能得到大量新的查询结果,则与经常没有新的查询结果的查询相比,可以将该特定查询排名在前面,使得优先向数据库系统提交该查询。

也可以同时基于以上一个或多个准则来将查询数据集中的查询排名。例如,可以将每个准则赋予一定的权重,并且计算每个查询的分值,然后依据相应的分值将查询数据集中的查询排名。

查询结果缓存模块212可以存储查询结果数据集,所述查询结果数据集包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果。查询结果数据集也可以用各种数据结构来实现,例如,队列、hashmap等。查询结果数据集中通过查询标识符来建立查询与查询结果的对应关系。

为了合理利用资源,避免由于处理器异常导致的查询结果长期不更新,或者查询结果数据集中包括大量过时的数据,查询结果数据集中的结果数据可以设置阈值时长,一般为数据计算周期的两到三倍。每个查询结果具有一个存龄,所述存龄指示该查询结果的最初创建时间至当前时间的时长。在一个示例中,可以确定所述查询结果集中的特定查询结果的存龄是否超过阈值时长,当所述存龄超过所述阈值时长时,从所述查询结果数据集中删除所述特定查询结果。也可以为查询结果数据集设置阈值大小。当查询结果数据集中包括的数据量达到所设置的阈值大小时,删除一定数量的查询结果,例如删除与查询数据集中排名靠后的查询对应的查询结果。

数据搜索模块221以预定义的查询周期向所述数据库300提交所述查询数据集中的一个或多个查询。数据搜索模块221可以以预定义的查询周期从查询缓存模块211中存储的查询数据集中获取查询以向数据库300提交,然后从数据库300接收与该查询对应的一个或多个查询结果。数据搜索模块221然后可以基于所提交的该查询以及所接收到的相应的查询结果更新查询结果缓存模块212中存储的查询结果数据集,以供查询请求者100查询。上述预定义的查询周期可以是管理者设定的,例如,由管理者来将计算装置200设定为在固定的时间段向数据库系统提交查询以获取查询结果。该预定义的查询周期也可以是计算装置200基于自身的任务量动态确定的,例如,当计算装置200自身的计算量很大时,不向数据库系统提交查询,当计算装置自身的计算量较小或者空闲时,才向数据库系统提交查询。可以按照一定顺序从查询缓存模块211中存储的查询数据集中获取查询,而依次向数据库系统提交,例如按照查询数据集中的查询的排名顺序来向数据库系统提交查询。也可以同时从查询缓存模块211中存储的查询数据集中取出多个查询,而并行向数据库系统提交。

数据计算模块222用于执行对数据的计算。数据计算模块222可以用于执行计算装置200自身的任务。数据计算模块222还可以对于数据搜索模块221基于查询缓存模块211中存储的查询数据集中的查询从数据库300中获取的查询结果数据进行计算。例如,当查询中包括统计分析条件时,数据计算模块222可以对数据搜索模块221获取的查询结果进行统计分析,并将统计分析结果存储在查询结果缓存模块212中。数据计算模块222还可以对从特定查询请求者100接收到的查询进行分析,以获取特定查询请求者的查询特性。数据计算模块222可以基于特定查询请求者的所分析的查询特性而向查询请求者100发送消息询问该查询请求者是否需要订阅某些查询。当查询请求者确定订阅某些查询时,查询结果缓存模块212定期向查询请求者100传送与所订阅的查询对应的查询结果。这样,查询请求者可以在不提交查询的情况下获取所需的查询结果。

数据库300中存储计算装置可以搜索的大量数据。数据库300可以由数据库系统所管理。数据库300从计算装置200接收一个或多个查询,基于接收到的查询执行搜索,并将获得的搜索结果传送给计算装置200。在数据库中执行的搜索过程可以是并行进行的,也可以是按顺序进行。

图2是根据本发明的实施例的执行数据查询的方法的流程图。图2中所示的流程可以是由图1中的计算装置200执行的。

在步骤s21,从查询请求者接收查询。

在步骤s22,确定查询结果数据集中是否包括与所述查询对应的查询结果。所述查询结果数据集包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果。

在步骤s23,响应于确定所述查询结果数据集中包括与所述查询对应的查询结果,将所述查询结果传送给所述查询请求者。

在步骤s24,响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,将所述查询添加到查询数据集。所述查询数据集包括要在所述数据库系统中执行的一个或多个查询。

在一个实施例中,响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,可以将指示需要再次发送所述查询以获取查询结果的通知传送给所述查询请求者。此时,可以将添加到查询数据集中的该查询的排名提高,而优先获取与该查询对应的查询结果,以备查询请求者的下一次查询。

在一个实施例中,响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,向所述数据库系统提交所述查询。当确定所述查询结果数据集中不包括与所述查询对应的查询结果时,可以实时向所述数据库系统提交所述查询,并且将与所述查询对应的查询结果传送给所述查询请求者。或者也可以在下一个查询周期向所述数据库系统提交所述查询,并且将与所述查询对应的查询结果传送给所述查询请求者。在本实施例中,不需要查询请求者再次提交查询,而是在获取查询结果之后自动将该查询结果传送给所述查询请求者。

图3是根据本发明的实施例的执行数据查询的方法的流程图。图3中所示的流程可以是由图1中的计算装置200执行的。与图2中所示的对查询结果数据集执行判断操作的流程相比,图3中所示的流程对查询数据集执行判断。图2中所示的流程在查询数据集中包括的查询的数目较多时,即,查询数据集中已经包括查询请求者提交的大部分查询时,可以减少对查询数据集执行的操作。图3中所示的流程在查询数据集中包括的查询的数目较少时,即,查询数据集中包括查询请求者提交的小部分查询时,可以减少对查询结果数据集执行的操作。

在步骤s31,从查询请求者接收查询。

在步骤s32,确定查询数据集中是否包括所述查询。所述查询数据集包括要在所述数据库系统中执行的一个或多个查询。

在步骤s33,响应于确定所述查询数据集中包括所述查询,将查询结果数据集中与所述查询对应的查询结果传送给所述查询请求者。所述查询结果数据集包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果。

在步骤s34,响应于确定所述查询数据集中不包括所述查询,将所述查询添加到所述查询数据集。

在一个实施例中,当确定所述查询数据集中不包括所述查询时,可以将指示需要再次发送所述查询以获取查询结果的通知传送给所述查询请求者。此时,可以将添加到查询数据集中的该查询的排名提高,而优先获取与该查询对应的查询结果,以备查询请求者的下一次查询。

在一个实施例中,当确定所述查询数据集中不包括所述查询时,向所述数据库系统提交所述查询。当确定所述查询数据集中不包括所述查询时,可以实时向所述数据库系统提交所述查询,并且将与所述查询对应的查询结果传送给所述查询请求者。或者也可以在下一个查询周期向所述数据库系统提交所述查询,并且将与所述查询对应的查询结果传送给所述查询请求者。在本实施例中,不需要查询请求者再次提交查询,而是在获取查询结果之后自动将该查询结果传送给所述查询请求者。

图4是根据本发明的实施例的执行数据查询的方法的流程图。图4中所示的流程可以是由图1中的计算装置200执行的。

在步骤s41,确定是否到达预定义的查询周期。该预定义的查询周期是管理者设定的或者是基于计算装置的任务量动态确定的。

在步骤s42,当到达预定义的查询周期时,向所述数据库系统提交所述查询数据集中的一个或多个查询。可以按照查询数据集中的查询的排名顺序提交查询。也可以同时向所述数据库系统提交一个或多个查询。

在步骤s43,从数据库系统接收与所提交的查询对应的相应的查询结果。

在步骤s44,针对所提交的每一个查询,响应于从所述数据库系统接收到与所提交的该查询对应的相应的查询结果,基于所提交的该查询以及所接收到的相应的查询结果更新所述查询结果数据集。

在一个实施例中,查询结果数据集中的每一个查询结果可以具有更新次数标记值,用以记录某个查询结果在多少个查询周期内没有被更新。在步骤s44中基于所提交的该查询以及所接收到的相应的查询结果更新所述查询结果数据集具体可以包括:确定所述查询结果数据集中是否包括与所提交的查询对应的先前的查询结果,当所述查询结果数据集中不包括与所提交的查询对应的先前的查询结果时,将所接收到的相应的查询结果添加到所述查询结果数据集;当确定所述查询结果数据集中包括与所提交的查询对应的先前的查询结果时,确定所述查询结果集中包括的所述先前的查询结果与所接收到的相应的查询结果是否相同。当确定所述查询结果集中包括的所述先前的查询结果与所接收到的相应的查询结果相同时,将所述查询结果集中包括的所述先前的查询结果的更新次数标记值递增1。当确定所述查询结果集中包括的所述先前的查询结果与所接收到的相应的查询结果不相同时,用所接收到的相应的查询结果替换所述查询结果集中包括的所述先前的查询结果,以完成更新。可以确定所述查询结果集中的特定查询结果的更新次数标记值是否等于阈值次数,如果等于所述阈值次数,删除所述查询数据集中与所述特定查询结果对应的查询。这样,通过删除查询数据集中的特定查询,使得不再向数据库系统提交长期不更新的查询结果所对应的查询,以节约资源。

图5是根据本发明实施例的执行数据查询的装置的示意图。

装置500包括接收模块510、确定模块511、传送模块512和添加模块513。

接收模块510从查询请求者接收查询。

确定模块511确定查询结果数据集中是否包括与所述查询对应的查询结果。所述查询结果数据集包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果。

传送模块512响应于确定所述查询结果数据集中包括与所述查询对应的查询结果,将所述查询结果传送给所述查询请求者。

添加模块513响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,将所述查询添加到查询数据集。所述查询数据集包括要在所述数据库系统中执行的一个或多个查询。

根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。

本发明的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明所提供的执行数据查询的方法。

本发明的非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明所提供的执行数据查询的方法。

下面参考图6,其示出了适于用来实现本申请实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、确定模块和传送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块还可以被描述为“从查询请求者接收查询的模块”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:从查询请求者接收查询;确定查询结果数据集中是否包括与所述查询对应的查询结果,所述查询结果数据集包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果;响应于确定所述查询结果数据集中包括与所述查询对应的查询结果,将所述查询结果传送给所述查询请求者;以及响应于确定所述查询结果数据集中不包括与所述查询对应的查询结果,将所述查询添加到查询数据集,所述查询数据集包括要在所述数据库系统中执行的一个或多个查询。

根据本发明实施例的技术方案,能够获得如下优点或有益效果:因为查询数据集中包括要在所述数据库系统中执行的一个或多个查询,查询结果数据集中包括从数据库系统获取的与一个或多个先前的查询对应的一个或多个查询结果,所以当查询请求者提交的查询包括在查询数据集中时,查询请求者不需要等待从数据库系统获取查询结果,而可以直接从查询结果数据集中获取相应的查询结果,因而可以减少查询请求者的等待时间。而且,预先将查询结果添加到查询结果数据集中以供查询,在大量查询请求者同时提交查询或者查询接收者自身任务量很大时,可以减轻查询接收者的压力。此外,当查询请求者提交的查询没有包括在查询数据集中时,在查询数据集中添加查询,使得查询接收者能更好满足查询请求者的查询需求。同时,视需要删除查询数据集中的查询或者查询结果数据集中的查询结果,能够节约查询接收者的存储和处理资源。另一方面,基于查询接收者的任务量动态确定从数据库系统获取查询结果的时间,能够更加合理利用查询接收者的资源。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1