数据库连接管理方法及系统技术方案

技术编号:15398109 阅读:142 留言:0更新日期:2017-05-22 11:03
本申请提供了一种数据库连接管理方法,涉及计算机数据处理技术领域。为了保证本申请在代理服务器中的连接复用,本申请代理服务器判断接收到对于针对同一结果集的SQL请求均绑定到一个连接上,即为绑定的连接分配连接ID发送给客户端,代理服务器通过连接ID查找相应的连接以连接数据库进行处理;针对同一事务的SQL请求均绑定到一个连接上,即为绑定的连接分配连接ID发送给客户端,代理服务器通过连接ID查找相应的连接以连接数据库进行处理;从而大大提高了数据库连接的利用率,避免对数据库连接的无效占用,保证数据库的稳定,提高数据库的响应速度,从而提高服务器的处理效率。

Database connection management method and system

The present invention provides a database connection management method, and relates to the technical field of computer data processing. In order to ensure the connection of this application in the proxy server, the proxy server receives the application for judgment for the same result set SQL requests are bound to a connection, which is connected with the distribution connection ID sent to the client proxy server bindings, by connecting the ID to find the corresponding connection to connect to the database for processing; the same transaction SQL requests are bound to a connection, which is connected with the distribution connection ID sent to the client proxy server bindings, by connecting the ID to find the corresponding connection to connect to the database; thereby greatly improving the utilization rate of the database connection, to avoid the database connection occupied to ensure database stability. To improve the response speed of the database, so as to improve the processing efficiency of the server.

【技术实现步骤摘要】
数据库连接管理方法及系统
本申请涉及计算机数据处理
,特别是涉及一种数据库连接管理方法及系统。
技术介绍
软件系统的数据操作通常都是在数据库中,当需要进行数据读写操作时,通过与数据库建立连接的方式来实现。通常情况下,软件系统与数据库都是采用在需要时建立连接,而不需要时关闭连接的方式。在实际应用中,软件系统运行时通常具有高峰期和低谷期,而软件系统使用数据库时通常会配置最大连接数和最小连接数。这个连接数配置通常都是针对高峰时期来设置的,对于低谷期来说,被使用的连接可能会很少,因此,针对高峰期配置的最大连接数和最小连接数会造成较大的资源浪费。特别的,对于某些数据库的连接数是需要购买的时候,此种配置方式无疑会增加使用成本,同时连接数的实际利用率很低。为了提高连接的利用率,通常会建立数据库连接管理系统来对数据库的连接进行管理,一个数据库管理系统对应一个数据库。在管理系统中建立工作线程或者连接池的方式,通过将SQL请求分配到工作线程上执行或者通过连接池进行SQL请求的管理。此种方式在一定程度上提高了连接的利用率,但是,因为每一个数据库是独立的,当有多个软件系统以及多个数据库时,无法实现数据库连接的共享,连接的利用率还是无法得到提高。
技术实现思路
本申请提供一种数据库连接管理方法及系统,能够解决数据库连接利用率低的问题。为了解决上述问题,本申请公开了一种数据库连接管理方法,其特征在于,包括:在代理服务器与应用服务器连接后,代理服务器接收应用服务器转发的客户端信息,代理服务器进入数据库连接管理步骤,所述数据库连接管理步骤包括:接收应用服务器转发的客户端的SQL请求;当判断所述SQL请求是初次接收的针对结果集的SQL请求时,从未绑定的连接中取出一个连接,通过所述连接从对应数据库获取当前查询段的查询结果;将所述查询结果和所述连接进行绑定,为所述连接分配连接ID,并将所述查询结果和连接ID一起发送给客户端;所述连接ID用于携带在所述客户端再次针对同一结果集发送后续的SQL请求中;当判断所述SQL请求是针对结果集的SQL请求但不是初次接收的SQL请求时,提取对应所述SQL请求的连接ID并根据所述连接ID查找对应的连接,通过所述连接从对应数据库获取当前查询段的查询结果。优选的,还包括:针对同一结果集,当判断所述结果集的SQL请求不需要继续绑定所述连接后,将所述连接与查询结果解绑。优选的,针对同一结果集,当判断所述结果集的SQL请求不需要继续绑定所述连接后,将所述连接与查询结果解绑包括:通过所述连接向数据库请求得到的当前查询段的查询结果后,判断针对所述结果集的所有数据全部取出,则将所述连接与查询结果解绑。优选的,针对同一结果集,当判断所述结果集的SQL请求不需要继续绑定所述连接后,将所述连接与查询结果解绑包括:记录所述连接的绑定时间,当所述绑定时间超过阈值时,则将所述连接与查询结果解绑。本申请还公开了一种数据库连接管理方法,包括:在代理服务器与应用服务器连接后,代理服务器接收应用服务器转发的客户端信息,代理服务器进入数据库连接管理步骤,所述数据库连接管理步骤包括:接收应用服务器转发的客户端的SQL请求;当判断所述SQL请求是初次接收的针对事务的SQL请求时,从未绑定的连接中选择一个连接与对应所述事务SQL请求的事务绑定,并通过所述连接接到对应数据库处理所述SQL请求;为所述连接分配一个连接ID,并将所述连接ID返回给客户端;所述连接ID用于携带在所述客户端再次针对同一事务发送后续的SQL请求中;当判断所述SQL请求是针对事务的SQL请求但不是初次接收的SQL请求时,提取对应所述事务SQL请求的连接ID;并根据所述连接ID提取对应的连接,并通过所述连接接到对应数据库处理所述SQL请求。优选的,还包括:针对同一事务,当判断所述事务的SQL请求不需要继续使用所述连接后,将所述连接与所述事务解绑。优选的,针对同一事务,当判断所述事务的SQL请求不需要继续使用所述连接后,将所述连接与所述事务解绑包括:当客户端发送的SQL请求中包括事务结束命令时,则判断所述事务的SQL请求或者结果集分段SQL请求不需要继续使用所述连接。本申请还公开了一种数据库连接管理系统,包括:代理服务器,应用服务器,数据库;所述代理服务器包括:请求接收模块,用于接收应用服务器转发的客户端的SQL请求;结果集请求判断模块一,用于当判断所述SQL请求是初次接收的针对结果集的SQL请求时,从未绑定的连接中取出一个连接,通过所述连接从对应数据库获取当前查询段的查询结果;查询结果处理模块,用于将所述查询结果和所述连接进行绑定,为所述连接分配连接ID,并将所述查询结果和连接ID一起发送给客户端;所述连接ID用于携带在所述客户端再次针对同一结果集发送后续的SQL请求中;结果集请求判断模块二,用于当判断所述SQL请求是针对结果集的SQL请求但不是初次接收的SQL请求时,提取对应所述SQL请求的连接ID并根据所述连接ID查找对应的连接,通过所述连接从对应数据库获取当前查询段的查询结果。本申请还公开了一种数据库连接管理系统,包括:代理服务器,应用服务器,数据库;所述代理服务器包括:请求接收模块,用于接收应用服务器转发的客户端的SQL请求;第一事务请求判断处理模块,用于当判断所述SQL请求是初次接收的针对事务的SQL请求时,从未绑定的连接中选择一个连接与对应所述事务SQL请求的事务绑定,并通过所述连接接到对应数据库处理所述SQL请求;绑定处理模块,用于为所述连接分配一个连接ID,并将所述连接ID返回给客户端;所述连接ID用于携带在所述客户端再次针对同一事务发送后续的SQL请求中;第二事务请求判断处理模块,用于当判断所述SQL请求是针对事务的SQL请求但不是初次接收的SQL请求时,提取对应所述事务SQL请求的连接ID;根据所述连接ID提取对应的连接,并通过所述连接接到对应数据库处理所述SQL请求。与现有技术相比,本申请包括以下优点:本申请的数据库连接管理方法及系统通过建立代理服务器来对所有客户端通过应用服务器集群发送的SQL请求以及数据库集群的连接进行集中管理,可以很好的对数据库的连接进行分配,并及时释放不需要再使用的连接,实现连接利用率的最大化。因为,在某些应用服务器处于高峰期时,可能会有应用服务器处于低谷期,此时则可以将处于低谷期的应用服务器对应的连接分配给处于高峰期的应用服务器。特别的,对于应用服务器较多时,此种方式的效果尤其明显,能够大量的降低数据库的连接总量,同时可以保证应用服务器正常与数据库建立连接,从而大大提高了数据库连接的利用率,避免对数据库连接的无效占用,保证数据库的稳定,提高数据库的响应速度,从而提高服务器的处理效率。为了保证本申请在代理服务器中的连接复用,本申请代理服务器判断接收到对于针对同一结果集的SQL请求均绑定到一个连接上,即为绑定的连接分配连接ID发送给客户端,代理服务器通过连接ID查找相应的连接以连接数据库进行处理,以解决保证事务只能发生在同一连接上的要求,保证应用服务器正常与数据库建立连接,从而大大提高了数据库连接的利用率,避免对数据库连接的无效占用,保证数据库的稳定,提高数据库的响应速度,从而提高服务器的处理效率。另外,本申请代理服务器判断本文档来自技高网...
数据库连接管理方法及系统

【技术保护点】
一种数据库连接管理方法,其特征在于,包括:在代理服务器与应用服务器连接后,代理服务器接收应用服务器转发的客户端信息,代理服务器进入数据库连接管理步骤,所述数据库连接管理步骤包括:接收应用服务器转发的客户端的SQL请求;当判断所述SQL请求是初次接收的针对结果集的SQL请求时,从未绑定的连接中取出一个连接,通过所述连接从对应数据库获取当前查询段的查询结果;将所述查询结果和所述连接进行绑定,为所述连接分配连接ID,并将所述查询结果和连接ID一起发送给客户端;所述连接ID用于携带在所述客户端再次针对同一结果集发送后续的SQL请求中;当判断所述SQL请求是针对结果集的SQL请求但不是初次接收的SQL请求时,提取对应所述SQL请求的连接ID并根据所述连接ID查找对应的连接,通过所述连接从对应数据库获取当前查询段的查询结果。

【技术特征摘要】
1.一种数据库连接管理方法,其特征在于,包括:在代理服务器与应用服务器连接后,代理服务器接收应用服务器转发的客户端信息,代理服务器进入数据库连接管理步骤,所述数据库连接管理步骤包括:接收应用服务器转发的客户端的SQL请求;当判断所述SQL请求是初次接收的针对结果集的SQL请求时,从未绑定的连接中取出一个连接,通过所述连接从对应数据库获取当前查询段的查询结果;将所述查询结果和所述连接进行绑定,为所述连接分配连接ID,并将所述查询结果和连接ID一起发送给客户端;所述连接ID用于携带在所述客户端再次针对同一结果集发送后续的SQL请求中;当判断所述SQL请求是针对结果集的SQL请求但不是初次接收的SQL请求时,提取对应所述SQL请求的连接ID并根据所述连接ID查找对应的连接,通过所述连接从对应数据库获取当前查询段的查询结果。2.如权利要求1所述的数据库连接管理方法,其特征在于,针对同一结果集,当判断所述结果集的SQL请求不需要继续绑定所述连接后,将所述连接与查询结果解绑。3.如权利要求2所述的数据库连接管理方法,其特征在于,针对同一结果集,当判断所述结果集的SQL请求不需要继续绑定所述连接后,将所述连接与查询结果解绑包括:通过所述连接向数据库请求得到的当前查询段的查询结果后,判断针对所述结果集的所有数据全部取出,则将所述连接与查询结果解绑。4.如权利要求2所述的数据库连接管理方法,其特征在于,针对同一结果集,当判断所述结果集的SQL请求不需要继续绑定所述连接后,将所述连接与查询结果解绑包括:记录所述连接的绑定时间,当所述绑定时间超过阈值时,则将所述连接与查询结果解绑。5.一种数据库连接管理方法,其特征在于,包括:在代理服务器与应用服务器连接后,代理服务器接收应用服务器转发的客户端信息,代理服务器进入数据库连接管理步骤,所述数据库连接管理步骤包括:接收应用服务器转发的客户端的SQL请求;当判断所述SQL请求是初次接收的针对事务的SQL请求时,从未绑定的连接中选择一个连接与对应所述事务SQL请求的事务绑定,并通过所述连接接到对应数据库处理所述SQL请求;为所述连接分配一个连接ID,并将所述连接ID返回给客户端;所述连接ID用于携带在所述客户端再次针对同一事务发送后续的SQL请求中;当判断所述SQL请求是针对事务的SQL请求但不是初次接收的SQL请求...

【专利技术属性】
技术研发人员:董旗宇朱宏华
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1