一种查询处理方法、装置及系统的制作方法

文档序号:8430721阅读:232来源:国知局
一种查询处理方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及数据库技术领域,尤其涉及一种查询处理方法、装置及系统。
【背景技术】
[0002]目前,数据库在提供查询时,一般通过单一的查询引擎入口处理用户的查询请求。数据库将资源划分为多个队列,每个队列被分配了一定比例的计算或存储资源。当数据库接收查询请求时,根据查询请求的查询类型,将该查询请求提交到该查询请求的查询类型对应的资源队列中,由查询引擎使用该资源队列的资源对该查询请求进行处理,例如,可以根据执行查询的时间将资源队列进行划分:执行时间短暂的交互类查询或者交易类操作被指定使用第一个资源队列中的资源执行查询;执行时间较长,资源占用较多的复杂批处理任务被指定使用第二个资源队列中的资源执行查询;剩余的其他任务被指定使用第三个资源队列中的资源执行查询。
[0003]上述现有的在数据库中对查询请求进行处理的方法,由于采用固定的查询规则对处理查询请求的资源进行资源调度,当某一类查询请求需要的资源较多时,可能由于对该类查询进行处理的资源队列的资源不足,无法对该查询请求进行高效处理,导致对该类查询的处理效率低。

【发明内容】

[0004]本发明实施例提供一种查询处理方法、装置及系统,用以解决现有技术中存在的在数据库中对查询进行处理的效率低的问题。
[0005]本发明实施例提供一种查询处理方法,包括:
[0006]查询路由器将待处理的查询请求发送给多个查询引擎;
[0007]接收每个所述查询引擎发送的对所述查询请求进行处理的预判响应时间,所述预判响应时间为查询引擎根据自身对应的存储引擎中存储的数据表的属性信息,预判的通过扫描所述数据表对所述查询请求进行处理所需的时间;
[0008]向预判响应时间最小的查询引擎发送对所述查询请求的处理指令。
[0009]采用本发明实施例提供的方法,由于采用数据库中多个查询引擎中执行查询请求的预判响应时间最小的查询引擎中的资源对查询请求进行处理,可以动态的为查询请求分配查询引擎,采用所分配的查询引擎中的资源对查询请求进行处理,不需要使用查询引擎中固定的资源队列中的资源对查询请求进行处理,提高了对查询的处理效率。
[0010]进一步的,将待处理的查询请求发送给多个查询引擎,具体为:
[0011]通过待处理的查询请求的查询类型与每个查询引擎可处理查询的类型进行比对,将所述查询请求发送给可处理该查询请求的多个查询引擎。
[0012]进一步的,将待处理的查询请求发送给多个查询引擎,具体为:
[0013]将根据预设查询请求优先策略确定的优先级最高的待处理查询请求发送给多个查询引擎。
[0014]进一步的,上述方法,还包括:
[0015]在向预判响应时间最小的查询引擎发送对所述查询请求的处理指令之后,记录所述查询请求与处理该查询请求的查询引擎的对应关系。
[0016]进一步的,上述方法,还包括:
[0017]在向预判响应时间最小的查询引擎发送对所述查询请求的处理指令之后,当接收到该查询引擎发送的表征该查询引擎处理所述查询请求的资源不足的消息时,按照预判响应时间从小到大的顺序,从所述多个查询引擎中除该查询引擎之外的查询引擎中,向预判响应时间最小的查询引擎发送对所述查询请求的处理指令。
[0018]本发明实施例提供一种查询处理方法,包括:
[0019]查询引擎接收查询路由器发送的查询请求;
[0020]根据自身对应的存储引擎中存储的数据表的属性信息,预判通过扫描所述数据表对所述查询请求进行处理所需的时间,作为自身对所述查询请求进行处理的预判响应时间;
[0021]将所述预判响应时间发送给所述查询路由器;
[0022]当接收到所述查询路由器发送的对所述查询请求的处理指令时,采用自身的资源对所述查询请求进行处理。
[0023]采用本发明实施例提供的方法,由于采用数据库中多个查询引擎中执行查询请求的预判响应时间最小的查询引擎中的资源对查询请求进行处理,可以动态的为查询请求分配查询引擎,采用所分配的查询引擎中的资源对查询请求进行处理,不需要使用查询引擎中固定的资源队列中的资源对查询请求进行处理,提高了对查询的处理效率。
[0024]进一步的,当接收到所述查询路由器发送的对所述查询请求的处理指令时,采用自身的资源对所述查询请求进行处理,具体包括:
[0025]当接收到所述查询路由器发送的对所述查询请求的处理指令时,根据与自身对应的存储引擎中存储的数据表的属性信息,确定通过扫描所述数据表对所述查询请求进行处理所需的资源;
[0026]当确定自身的空闲资源不小于对所述查询请求进行处理所需的资源时,采用自身的空闲资源对所述查询请求进行处理。
[0027]进一步的,采用自身的空闲资源对所述查询请求进行处理,具体包括:
[0028]在自身的多个资源队列中,根据预设资源队列选择策略选择一个资源队列对所述查询请求进行处理。
[0029]进一步的,上述方法,还包括:
[0030]当确定自身的空闲资源小于对所述查询请求进行处理所需的资源时,向所述查询路由器发送表征自身处理所述查询请求的资源不足的消息。
[0031]本发明实施例还提供了一种查询处理装置,包括:
[0032]查询请求发送单元,用于将待处理的查询请求发送给多个查询引擎;
[0033]接收单元,用于接收每个所述查询引擎发送的对所述查询请求进行处理的预判响应时间,所述预判响应时间为查询引擎根据自身对应的存储引擎中存储的数据表的属性信息,预判的通过扫描所述数据表对所述查询请求进行处理所需的时间;
[0034]第一处理指令发送单元,用于向预判响应时间最小的查询引擎发送对所述查询请求的处理指令。
[0035]采用本发明实施例提供的装置,由于采用数据库中多个查询引擎中执行查询请求的预判响应时间最小的查询引擎中的资源对查询请求进行处理,可以动态的为查询请求分配查询引擎,采用所分配的查询引擎中的资源对查询请求进行处理,不需要使用查询引擎中固定的资源队列中的资源对查询请求进行处理,提高了对查询的处理效率。
[0036]进一步的,所述查询请求发送单元,具体用于通过待处理的查询请求的查询类型与每个查询引擎可处理查询的类型进行比对,将所述查询请求发送给可处理该查询请求的多个查询引擎。
[0037]进一步的,所述查询请求发送单元,具体用于将根据预设查询请求优先策略确定的优先级最高的待处理查询请求发送给多个查询引擎。
[0038]进一步的,上述装置,还包括:
[0039]记录单元,用于在向预判响应时间最小的查询引擎发送对所述查询请求的处理指令之后,记录所述查询请求与处理该查询请求的查询引擎的对应关系。
[0040]进一步的,上述装置,还包括:
[0041 ] 第二处理指令发送单元,用于当接收到该查询引擎发送的表征该查询引擎处理所述查询请求的资源不足的消息时,按照预判响应时间从小到大的顺序,从所述多个查询引擎中除该查询引擎之外的查询引擎中,向预判响应时间最小的查询引擎发送对所述查询请求的处理指令。
[0042]本发明实施例还提供了一种查询处理装置,包括:
[0043]接收单元,用于接收查询路由器发送的查询请求;
[0044]响应时间预判单元,用于根据自身对应的存储引擎中存储的数据表的属性信息,预判通过扫描所述数据表对所述查询请求进行处理所需的时间,作为自身对所述查询请求进行处理的预判响应时间;
[0045]第一发送单元,用于将所述预判响应时间发送给所述查询路由器;
[0046]处理单元,用于当接收到所述查询路由器发送的对所述查询请求的处理指令时,采用自身的资源对所述查询请求进行处理。
[0047]采用本发明实施例提供的装置,由于采用数据库中多个查询引擎中执行查询请求的预判响应时间最小的查询引擎中的资源对查询请求进行处理,可以动态的为查询请求分配查询引擎,采用所分配的查询引擎中的资源对查询请求进行处理,不需要使用查询引擎中固定的资源队列中的资源对查询请求进行处理,提高了对查询的处理效率。
[0048]进一步的,所述处理单元,具体用于当接收到所述查询路由器发送的对所述查询请求的处理指令时,根据与自身对应的存储引擎中存储的数据表的属性信息,确定通过扫描所述数据表对所述查询请求进行处理所需的资源;当确定自身的空闲资源不小于对所述查询请求进行处理所需的资源时,采用自身的空闲资源对所述查询请求进行处理。
[0049]进一步的,所述处理单元,具体用于在自身的多个资源队列中,根据预设资源队列选择策略选择一个资源队列对所述查询请求进行处理。
[0050]进一步的,上述装置,还包括:
[0051]第二发送单元,用于当确定自身的空闲资源小于对所述查询请求进行
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1