一种数据库交互处理方法及系统的制作方法

文档序号:6563683阅读:196来源:国知局
专利名称:一种数据库交互处理方法及系统的制作方法
技术领域
本发明涉及计算机及数据库应用领域,特别是数据库交互处理方法及系统。
背景技术
在基于数据库的大型系统中 一般都会随着时间的增长,数据量不断增加, 数据库的处理能力就会不断降低,而且这种性能的降低是一个渐变的过程,无 法很好的预测,导致的后果就是在某个时候开始,系统的响应速度越来越慢, 也越来越不稳定,偶尔会产生一些应用的响应变得特别慢,这个时候如果再有 很多并发就会导致系统挂起不再响应请求。
目前常用的解决方案主要集中在监控,然后人工分析,再逐个改进后提升 查询性能。监控往往是加在应用程序上,而不是在数据库访问层上,现在基于 数据库的应用 一般主要的性能问题都是在数据库的查询上,做更新和新增删除 的时间相对而言是非常短的。监控主要是记录下应用程序开始执行和结束执行 的时间,然后输出到日志中,再对日志进行统计分析,找到性能瓶颈的地方, 再招集相关人员讨论改进方案。
现有的方案主要是响应不够及时,没有办法对出现问题的应用实施快速自 动隔离。因为一般日志收集和分析有一个过程,然后人员收到统计分析结果后 还需要针对性的讨^沦,并且当数据量达到一定程度的时候,往往涉及到的应用
都会有性能问题,也就是要讨论修改的地方会比较多;而这个时候问题已经越 来越严重,系统承担着很大的风险,随时可能因为有性能问题的地方出现大量 并发而导致崩溃。

发明内容
本发明提供一种数据库交互处理方法及系统,用以解决现有技术中存在并 发程序较多导致数据库挂起不再响应请求的问题。
本发明提供以下技术方案 一种数据库交互处理方法,包括以下步骤 接收访问数据库的请求;
获取并发数,所述并发数是指允许同时处理并发程序的最大数量; 判断当前处理的并发程序的数量是否小于所述并发数,若是,则处理所述
请求,否则,拒绝所述请求。
处理所述请求是指接受该请求并进行相应的数据库操作。
根据已经执行完毕的并发程序进行数据库交互的平均时间查询规定的处
理时间与并发数的对应关系并确定所述并发数。 处理所述请求包括以下步骤
根据当前处理的并发程序中数据库交互的最长时间查询规定的处理时间 与并发数的对应关系并重新得到并发数;
进一步判断当前处理的并发程序的数量是否小于重新得到的并发数,若 是,则接受该请求并进行相应的数据库操作,否则拒绝所述请求。
接受所述请求时还包括步骤
记录并发程序数据库交互处理的开始时间和结束时间,根据所述开始时间 和结束时间确定并发程序数据库交互的时间,并更新所述平均时间。
根据已经执行的各并发程序的数据库交互时间和已经执行的并发程序的 数量更新所述平均处理时间;或者
根据本次获得的并发程序数据库交互时间、在本次之前已经执行的并发程 序的数量以及所述平均时间,更新所述平均时间。
进一步根据更新后的平均时间查询规定的处理时间与并发数的对应关系 并重新得到并发数。
根据当前处理的并发程序中数据库交互的最长时间查询规定的处理时间与并发数的对应关系并确定所述并发数。
默认接受第 一个访问数据库的请求并进行相应的数据库操作。
一种数据库交互处理系统,包括
应用接口 ,用于接收访问数据库的请求;
处理模块,用于获取并发数,并判断当前处理的并发程序的数量是否小于 所述并发数,所述并发数是指允许同时处理并发程序的最大数量;
执行模块,用于当判断结果为是时处理所述请求,当判断结杲为否时拒绝 所述请求。
本发明有益效果如下
1、 本发明在每个数据库访问请求到来时都进行判断,是否允许执行,实 时对数据库访问进行监控;以及在出现问题时可以自动隔离数据库访问请求, 避免了大量访问请求导致系统桂起,不必等待分析结果。
2、 本发明可以随时输出各种数据进行监控和分析,不必等待输出到监控 日志后才能进行分析。
3、 本发明是对并发程序的数据库交互时间进行监控,并进一步控制允许 的并发数,所以本发明适用于各种数据库系统,并且采用本发明在数据量增加, 数据库性能变差时也可以得到4艮好的控制。


图1为本发明实施例中数据库交互处理系统的结构图; 图2为本发明实施例中数据库交互处理方法的基本流程图; 图3为本发明实施例中一种数据库交互处理方法的详细流程图; 图4为本发明实施例中另一种数据库交互处理方法的详细流程图。
具体实施例方式
为了解决现有技术中存在并发程序较多导致数据库挂起不再响应请求的 问题,本发明在数据库控制层根据并发程序处理的平均时间和正在执行的最长
时间来控制并发处理程序的数量。
参见图1,本实施例中数据库交互处理系统包括应用接口 101、处理模块 102、统计模块103和执行模块104。
应用接口 101从应用层接收访问数据库的请求。
处理模块102为各请求生成唯一标识,从统计模块103获取并发数和当前 执行的并发程序的数量,并判断当前执行的并发程序的数量是否小于并发数。
中数据库交互的最长时间确定并发数,并统计当前执行的并发程序的数量。 执行模块104当判断结果为小于时处理所述请求,执行并发程序;当判断
结果为不小于时向应用层返回拒绝处理的信息。
参见图2,本实施例中数据库交互处理方法的基本流程如下 步骤201:接收来自应用层的访问数据库的请求。
步骤202:获取并发数,所述并发数是指允许同时处理并发程序的最大数量。
步骤203:判断当前处理的并发程序的数量是否小于所述并发数,若是, 则处理所述请求,否则,拒绝所述请求。
参见图3,本实施例中数据库交互处理方法的详细流程如下
步骤301:接收访问数据库的请求,并为其生成唯一标识,所述请求通常 为一条结构化查询语言(SQL),包括增加、删除、修改和查找。
标识通常为顺序编码,可以是数字或字母或它们的组合,也可以是SQL 语句本身。该标识可以表示出请求的种类,通过标识可以得到已执行结束的并 发程序的数量和正在执行的并发程序的数量。也可以为一组类似的请求设置一 个标识,所述类似是指请求的类型和所需的执行时间基本相同。
可以增加一个控制开关,选择是否应用本方案,在需要时选择应用方案, 继续下面的流程。
步骤302:获得已经执行的并发程序的平均处理时间(以下称平均时间),
并根据平均时间和处理时间与并发数的对应关系确定当前的并发数。
并发数是指允许最多同时执行的并发程序的数量。处理时间是指执行并发 程序过程中进行数据库交互的时间。
如果是第一个请求,那么就不存在平均时间,则默认平均时间为o,或者
直接允许处理第一个请求。
步骤303:判断当前正在执行的并发程序的数量是否小于当前的并发数,
若是,则继续步骤304,否则继续步骤307。
步骤304:获取正在执行的各并发程序中数据库交互的最长时间。
步骤305:判断当前正在执行的并发程序的数量是否小于所述最长时间所
允许的并发数,若是,则允许处理该请求,执行并发程序,继续步骤306;否
则继续步骤307。
一般的数据库操作是1秒内完成, 一般应用服务器设置的最大数据库连接 数在25个左右。本实施例中平均时间和最长时间与并发数的对应关系如下
时间为0到2s,允许的并发数为5;
时间为2到5s,允许的并发数为3;
时间为5到8s,允许的并发数为2;
时间为8s以上,允许的并发数为1。
可根据数据库的类型及数据量等因素调整上述对应关系。
步骤306:允许处理该请求,记录数据库交互的开始才丸行的时间,在数据 库交互结束时记录结束时间,并更新已经执行的并发程序的平均时间。还可以 进一步更新并发数,则在步骤302中可直接获得并发数。
也可以从监控日志中获取并发程序的开始和结束时间,但是目前监控日志 的读取限于性能要求一般是独立和非实时的,本实施例在访问数据库的时候直 接记录,这是一种较佳的方式。还可以随时将各种数据(各并发程序的执行时 间和当前平均时间等)输出到监控分析系统,进行即时分析。
将已经执行的并发程序的各种数据保存在内存中,只需要根据内存中记录的各请求的标识和上次得到的平均时间以及该并发程序执行的时间计算当前 的平均时间,所以计算量非常小,而且可以获得用于并发程序数量控制的平均 时间。
上述计算方法是一种较佳的方案,也可以根据已经执行的各并发程序的处 理时间和数量计算当前的平均时间。
步骤307:返回拒绝执行的结果到应用层。
参见图4,本实施例中另一种数据库交互处理方法的详细流程如下 步骤401:接收访问数据库的请求,并为其生成唯一标识,所述请求通常
为一条结构化查询语言,包括增加、删除、修改和查找。
步骤402:获取正在执行的各并发程序中数据库交互的最长时间。 如果当前没有正在执行的程序,则默认执行时间为0,或者直接允许处理
第一个访问请求。
步骤403:判断当前正在执行的并发程序的数量是否小于所述最长时间所 允许的并发数,若是,则继续步骤404;否则继续步骤405。
一般的数据库操作是1秒内完成, 一般应用服务器设置的最大数据库连接 数在25个左右。本实施例中最长时间与并发数的对应关系如下
时间为0到2s,允许的并发数为5;
时间为2到5s,允许的并发数为3;
时间为5到8s,允许的并发数为2;
时间为8s以上,允许的并发数为1。
可根据数据库的类型及数据量等因素调整上述对应关系。
步骤404:接受该请求,执行对数据库的相关操作。
步骤405:返回拒绝执行的结果到应用层。
本发明在每个数据库访问请求到来时都进行判断,是否允许执行,实时对 数据库访问进行监控;以及在出现问题时可以自动隔离数据库访问请求,避免 了大量访问请求导致系统挂起,不必等待分析结果。本发明可以随时输出各种
数据进行监控和分析,不必等待输出到监控日志后才能进行分析。并且,本发 明是对并发程序的数据库交互时间进行监控,并进一步控制允许的并发数,所 以本发明适用于各种数据库系统,并且采用本发明在数据量增加,数据库性能 变差时也可以得到4艮好的控制。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求 及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种数据库交互处理方法,其特征在于,包括以下步骤接收访问数据库的请求;获取并发数,所述并发数是指允许同时处理并发程序的最大数量;判断当前处理的并发程序的数量是否小于所述并发数,若是,则处理所述请求,否则,拒绝所述请求。
2、 如权利要求1所述的数据库交互处理方法,其特征在于,处理所述请 求是指接受该请求并进行相应的数据库操作。
3、 如权利要求1所述的数据库交互处理方法,其特征在于,根据已经执 行完毕的并发程序进行数据库交互的平均时间查询规定的处理时间与并发数 的对应关系并确定所述并发数。
4、 如权利要求3所述的数据库交互处理方法,其特征在于,处理所述请 求包括以下步骤根据当前处理的并发程序中数据库交互的最长时间查询规定的处理时间 与并发数的对应关系并重新得到并发数;进一步判断当前处理的并发程序的数量是否小于重新得到的并发数,若 是,则接受该请求并进行相应的数据库操作,否则拒绝所述请求。
5、 如权利要求3或4所述的数据库交互处理方法,其特征在于,接受所 述请求时还包括步骤记录并发程序数据库交互处理的开始时间和结束时间,根据所述开始时间 和结束时间确定并发程序数据库交互的时间,并更新所述平均时间。
6、 如权利要求5所述的数据库交互处理方法,其特征在于,根据已经执均处理时间;或者根据本次获得的并发程序数据库交互时间、在本次之前已经执行的并发程 序的数量以及所述平均时间,更新所述平均时间。
7、 如权利要求6所述的数据库交互处理方法,其特征在于,进一步根据 更新后的平均时间查询规定的处理时间与并发数的对应关系并重新得到并发 数。
8、 如权利要求1所述的数据库交互处理方法,其特征在于,根据当前处 理的并发程序中数据库交互的最长时间查询规定的处理时间与并发数的对应 关系并确定所述并发数。
9、 如权利要求1所述的数据库交互处理方法,其特征在于,默认接受第 一个访问数据库的请求并进行相应的数据库操作。
10、 一种数据库交互处理系统,其特征在于,包括 应用接口,用于接收访问数据库的请求;处理模块,用于获取并发数,并判断当前处理的并发程序的数量是否小于 所述并发数,所述并发数是指允许同时处理并发程序的最大数量;执行模块,用于当判断结果为是时处理所述请求,当判断结果为否时拒绝 所述请求。
全文摘要
本发明公开了一种数据库交互处理方法及系统,用以解决现有技术中存在并发程序较多导致数据库挂起不再响应请求的问题。本发明的方法是接收访问数据库的请求;获取并发数,所述并发数是指允许同时处理并发程序的最大数量;判断当前处理的并发程序的数量是否小于所述并发数,若是,则处理所述请求,否则,拒绝所述请求。该系统包括应用接口、处理模块和执行模块。
文档编号G06F17/30GK101192228SQ20061016100
公开日2008年6月4日 申请日期2006年12月1日 优先权日2006年12月1日
发明者吕开利, 沈少峰 申请人:阿里巴巴公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1