本发明专利技术提供了一种面向硬件数据库的多用户请求批处理方法及装置,其中,该方法包括:接收多个用户请求,并记录所述多个用户请求;其中,每个用户请求的记录内容包括SQL语句和执行状态;根据用户请求的记录内容选择执行状态为待执行、SQL语句所需占用硬件数据库资源不同、且SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配的多个用户请求;利用同一连接发送选择的多个用户请求,以利用硬件数据库并行执行选择的多个用户请求的SQL语句。通过上述方案能够在高效利用硬件资源的情况下有效解决多用户请求访问数据库的问题。
Batch processing method and device of multi-user request for hardware database
【技术实现步骤摘要】
面向硬件数据库的多用户请求批处理方法及装置
本专利技术涉及计算机
,尤其涉及一种面向硬件数据库的多用户请求批处理方法及装置。
技术介绍
在信息时代,随着数据的不断增多,数据库的访问需求也越来越多。常常会出现的一种情况是,多个用户同时访问一个数据库。当有多个用户连接数据库时,同一时间内很有可能也会多个用户访问应用程序。由于系统的资源有限,当用户数量很多时,系统的性能往往会出现问题。常见的数据库连接解决方法有以下三种:第一种,为每一个用户连接请求建立一个新的数据库连接。该方法最为简单,在任何时候都可以处理数据库的多用户并发请求。第二种,在应用系统初始化时建立一个连接,所有对数据库的访问都通过该连接进行。该方法可以免除每次请求时初始化和释放数据库连接的开销,而且不会有系统并发处理的问题。第三种,为数据库连接创建一个连接池,在连接池中管理限定数目的数据库连接。数据库连接池是在应用程序启动时就建立足够的数据库连接,并将这些连接组成一个连接缓冲区,由应用程序动态的对缓冲区中的连接进行申请,使用和释放;对于超过连接池并发连接数限制的请求,将其放在请求队列中排队等待数据库服务。然而,上述数据库连接方法均难以兼顾有效解决多用户请求访问数据库的问题和高效利用硬件资源的问题。
技术实现思路
本专利技术实施例提供了一种面向硬件数据库的多用户请求批处理方法及装置,以在高效利用硬件资源的情况下有效解决多用户请求访问数据库的问题。为了达到上述目的,本专利技术采用以下方案实现:根据本专利技术实施例的一个方面,提供了一种面向硬件数据库的多用户请求批处理方法,包括:接收多个用户请求,并记录所述多个用户请求;其中,每个用户请求的记录内容包括SQL语句和执行状态;根据用户请求的记录内容选择执行状态为待执行、SQL语句所需占用硬件数据库资源不同、且SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配的多个用户请求;利用同一连接发送选择的多个用户请求,以利用硬件数据库并行执行选择的多个用户请求的SQL语句。在一些实施例中,接收多个用户请求,包括:通过多线程方式收集多个用户请求的SQL语句,并将收集的用户请求的执行状态标记为待执行。在一些实施例中,记录所述多个用户请求,包括:根据接收时间顺序记录所述多个用户请求;其中,每个用户请求的记录内容还包括时间戳。在一些实施例中,所述的面向硬件数据库的多用户请求批处理方法,还包括:利用同一连接依据时间戳依次发送SQL语句所需占用硬件数据库资源相同且执行状态为待执行的多个用户请求,以利用硬件数据库按接收时间顺序执行用户请求的SQL语句。在一些实施例中,根据接收时间顺序记录所述多个用户请求,包括:根据接收时间顺序将所述多个用户请求记录在用户状态表中。在一些实施例中,根据接收时间顺序将所述多个用户请求记录在用户状态表中,包括:根据接收时间顺序将所述多个用户请求分别记录在相应用户的用户状态表中;其中,每个用户请求的记录内容还包括用户ID。在一些实施例中,每个用户请求的记录内容还包括用户ID,不同用户请求对应的用户ID相同或不同。在一些实施例中,接收多个用户请求,包括:接收包含多条SQL语句的原始请求;将所述包含多条SQL语句的原始请求拆分为多个用户请求,其中,拆分得到的所述多个用户请求对应相同的用户ID,每个用户请求包含一条SQL语句。在一些实施例中,记录所述多个用户请求,包括:将由不同原始请求拆分得到的用户请求记录在不同的用户状态表中,并为各用户状态表设置用于从中获取用户请求的记录内容的地址索引。在一些实施例中,利用同一连接发送选择的多个用户请求之前,所述方法还包括:建立一次与硬件数据库的连接。利用同一连接发送选择的多个用户请求,包括:利用建立的该次与硬件数据库的连接发送选择的多个用户请求。在一些实施例中,根据用户请求的记录内容选择执行状态为待执行、SQL语句所需占用硬件数据库资源不同、且SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配的多个用户请求,包括:根据用户请求的记录内容中执行状态选择执行状态为待执行的用户请求;根据用户请求的记录内容中SQL语句的操作符从执行状态为待执行的用户请求中选择SQL语句所需占用硬件数据库资源不同的用户请求;根据用户请求的记录内容中SQL语句估算SQL语句所需占用硬件数据库资源不同的用户请求的SQL语句所需占用硬件数据资源的大小;根据估算的所需占用硬件数据资源的大小从SQL语句所需占用硬件数据库资源不同的用户请求中选择SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配的多个用户请求。在一些实施例中,所需占用硬件数据库资源不同的SQL语句的操作符包括select、join、compare或数学运算符中的至少一种。根据本专利技术实施例的另一个方面,还提供了一种一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。根据本专利技术实施例的又一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。本专利技术实施例的面向硬件数据库的多用户请求批处理方法、电子设备及计算机可读存储介质,通过使选择的多个用户请求的SQL语句所需占用硬件数据库资源不同,使得可以对多个用户请求的SQL语句进行批处理,通过使选择的多个用户请求的SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配,使得可以最大化利用硬件数据库的运算资源,通过利用同一连接发送选择的多个用户请求,能够减少连接的建立和释放所消耗的资源。因此,本专利技术能够在高效利用硬件资源的情况下有效解决多用户请求访问数据库的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本专利技术一实施例的面向硬件数据库的多用户请求批处理方法的流程示意图;图2是本专利技术一实施例中用户和硬件数据库的连接示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。为每一个用户的连接请求建立一个新的数据库连接的缺点是,系统可以处理的并发请求的数量受大型数据库系统设置和JSP(JavaServerPages)Web应用服务器配置的限制。其次,系统能处理的并发请求的数量受系统资源的限制,如系统内存资源不足以支持这些连接的话会导致数据库系统瘫痪;CPU资源不足的话会导致系统相应的速度很慢。在应用系统初始化时建立一个连接,所有对数据库的通信都本文档来自技高网...
【技术保护点】
1.一种面向硬件数据库的多用户请求批处理方法,其特征在于,包括:/n接收多个用户请求,并记录所述多个用户请求;其中,每个用户请求的记录内容包括SQL语句和执行状态;/n根据用户请求的记录内容选择执行状态为待执行、SQL语句所需占用硬件数据库资源不同、且SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配的多个用户请求;/n利用同一连接发送选择的多个用户请求,以利用硬件数据库并行执行选择的多个用户请求的SQL语句。/n
【技术特征摘要】
1.一种面向硬件数据库的多用户请求批处理方法,其特征在于,包括:
接收多个用户请求,并记录所述多个用户请求;其中,每个用户请求的记录内容包括SQL语句和执行状态;
根据用户请求的记录内容选择执行状态为待执行、SQL语句所需占用硬件数据库资源不同、且SQL语句所需占用硬件数据库总资源与硬件数据库可用资源匹配的多个用户请求;
利用同一连接发送选择的多个用户请求,以利用硬件数据库并行执行选择的多个用户请求的SQL语句。
2.如权利要求1所述的面向硬件数据库的多用户请求批处理方法,其特征在于,接收多个用户请求,包括:
通过多线程方式收集多个用户请求的SQL语句,并将收集的用户请求的执行状态标记为待执行。
3.如权利要求1所述的面向硬件数据库的多用户请求批处理方法,其特征在于,记录所述多个用户请求,包括:
根据接收时间顺序记录所述多个用户请求;其中,每个用户请求的记录内容还包括时间戳。
4.如权利要求3所述的面向硬件数据库的多用户请求批处理方法,其特征在于,还包括:
利用同一连接依据时间戳依次发送SQL语句所需占用硬件数据库资源相同且执行状态为待执行的多个用户请求,以利用硬件数据库按接收时间顺序执行用户请求的SQL语句。
5.如权利要求3所述的面向硬件数据库的多用户请求批处理方法,其特征在于,根据接收时间顺序记录所述多个用户请求,包括:
根据接收时间顺序将所述多个用户请求记录在用户状态表中。
6.如权利要求5所述的面向硬件数据库的多用户请求批处理方法,其特征在于,根据接收时间顺序将所述多个用户请求记录在用户状态表中,包括:
根据接收时间顺序将所述多个用户请求分别记录在相应用户的用户状态表中;其中,每个用户请求的记录内容还包括用户ID。
7.如权利要求1所述的面向硬件数据库的多用户请求批处理方法,其特征在于,每个用户请求的记录内容还包括用户ID,不同用户请求对应的用户ID相同或不同。
8.如权利要求1所述的面向硬件数据库的多用户请求批处理方法,其特征在于,接收多个用户请求,包括:
接收包含多条SQL语句的原始请求;
将所述包含多条SQL语句的原始请求拆分为多个用...
【专利技术属性】
技术研发人员:鄢贵海,何莹,江树浩,
申请(专利权)人:中科驭数北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。