[发明专利]应用系统数据库更新的方法和系统无效
申请号: | 201110409541.6 | 申请日: | 2011-11-23 |
公开(公告)号: | CN103136308A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 杨卫华;陈志丰 | 申请(专利权)人: | 英业达股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 梁挥;常大军 |
地址: | 中国台湾台*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 系统 数据库 更新 方法 | ||
技术领域
本发明涉及服务器端请求方应用会话过程的效率提高技术,尤其涉及一种提高应用系统数据库更新效率的方法及系统。
背景技术
客户端程序在一次应用会话过程中,按业务处理的顺序在数据库事务范围内连续执行数据库读和写操作。
例如图1所示,请求方开始事务(步骤101)之后,按照业务处理顺序,依次向数据库写入数据A(步骤102),读出数据B(步骤103),写入数据C(步骤104),读出数据D(步骤105),更新数据E(步骤106),最后递交事务(步骤107)。
上述常规方法的多次数据库写入操作增加了数据库的访问次数,并且在并发事务中按照常规方法进行数据更新可能会导致死锁现象的出现。
例如图2所示,当存在两个请求方A和B同时向数据库应用会话事物时,由于请求方A中更新数据的顺序为先A后B,而同时请求方B中更新数据的顺序为先B后A,因此由于并发事务中数据更新的顺序不同导致上述类型的死锁。
发明内容
本发明的目的旨在至少解决现有技术中的上述问题之一。
为此,本发明的实施例提出一种可提高应用系统数据库的更新效率的方法及系统。
根据本发明的一个方面,本发明实施例提出了一种应用系统数据库的更新方法,所述更新方法包括以下步骤:
a)在一次应用会话过程中,将应用系统的请求方需要执行的多次数据库更新请求进行注册;
b)记录所述注册的多次数据库更新请求及对应的所有需要提交到数据库的变更数据;
c)在一次应用会话结束时提交所述多次数据库更新请求;
d)将所述多次数据库更新请求进行合并;以及
e)开启数据库事务并完成对应的数据库更新。
根据本发明进一步的实施例,请求方对数据库更新请求对应的变更数据进行记录。
根据本发明进一步的实施例,请求方在同一次会话过程中需要使用此前已注册更新的同一笔数据时,从步骤b对应记录的变更数据中获取。
根据本发明进一步的实施例,在存在对至少两个请求方分别进行数据库更新请求注册记录时,其中一个请求方在提交数据库更新请求时检查当前会话所需的数据库更新数据是否已被其他请求方的会话更改。
根据本发明进一步的实施例,在存在对至少两个请求方分别进行数据库更新请求注册记录时,对所述至少两个请求方建立预先定义的数据更新顺序规则,以使得每个请求方在进行数据库更新之前,根据所述规则对需要执行的数据库更新请求进行排序和依照所述排序向数据库发送更新请求。
根据本发明进一步的实施例,步骤d还包括:在一次应用会话过程中请求方对同一笔数据的不同字段进行多次更新时,将针对所述同一笔数据的多次数据库更新请求合并为一次数据库更新请求。
根据本发明的另一方面,本发明的实施例提出一种应用系统数据库的更新系统,所述更新系统包括:注册模块,所述注册模块用于将一次应用会话过程中应用系统的请求方需要执行的多次数据库更新请求进行注册,在同一次会话过程中需要使用此前已注册更新的同一笔数据时,从记录模块对应记录的变更数据中获取;记录模块,所述记录模块用于记录所述注册的多次数据库更新请求及对应的所有需要提交到数据库的变更数据;提交模块,所述提交模块在一次应用会话结束时提交所述多次数据库更新请求;合并模块,所述合并模块用于将所述多次数据库更新请求进行合并,在一次应用会话过程中请求方对同一笔数据的不同字段进行多次更新时,将针对所述同一笔数据的多次数据库更新请求合并为一次数据库更新请求;以及更新模块,所述更新模块用于开启数据库事务并完成对应的数据库更新。
根据本发明进一步的实施例,注册模块对数据库更新请求对应的变更数据进行记录。
根据本发明进一步的实施例,注册模块在同一次会话过程中需要使用此前已注册更新的同一笔数据时,从记录模块对应记录的变更数据中获取。
根据本发明进一步的实施例,合并模块在一次应用会话过程中请求方对同一笔数据的不同字段进行多次更新时,将针对所述同一笔数据的多次数据库更新请求合并为一次数据库更新请求。
根据本发明进一步的实施例,更新系统还包括检查模块,所述检查模块用于在存在对至少两个请求方分别进行数据库更新请求注册记录时,检查其中一个请求方在提交数据库更新请求时当前会话所需的数据库更新数据是否已被其他请求方的会话更改。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英业达股份有限公司,未经英业达股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110409541.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:酒店客房智能控制器
- 下一篇:身份智能识别家电控制系统