[发明专利]对关系数据库脚本加入事务控制的方法及装置有效
申请号: | 201510289793.8 | 申请日: | 2015-05-29 |
公开(公告)号: | CN104866595B | 公开(公告)日: | 2019-05-03 |
发明(设计)人: | 李亮光 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/28 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆;胡彬 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 关系 数据库 脚本 加入 事务 控制 方法 装置 | ||
本发明公开了一种对关系数据库脚本加入事务控制的方法及装置。该方法包括:配置事务颗粒度;将脚本的行号为事务颗粒度的整数倍的行之前或之后加入事务控制语句。本发明可以对事务颗粒度进行动态配置,实现了加入事务控制的动态可配,提高了加入事务控制的效率并且可以提高整体工作效率,随着维护系统的增多,可以减少大量重复性的手动工作,大大提高工作效率,避免了现有技术中手工操作而产生的人为错误。
技术领域
本发明实施例涉及数据库管理技术,尤其涉及一种对关系数据库脚本加入事务控制的方法及装置。
背景技术
在数据库日常运维管理中经常会批量插入脚本,批量插入的脚本通常由开发人员提供,插入脚本基本是上万条甚至几十万条以上数据,一次插入而且没有任何提交条语句,在程序异常时事务回滚对运行系统产生影响是不言而喻的,因此,需要在执行脚本时加入事务控制语句COMMIT。
现有技术中,加入事务控制语句是由运维DBA(Database administrator,数据库管理员)或者开发人员手动加入的。这种人工手动加入事务控制的方法效率较低,在数据量大时工作量巨大,由于人为错误,也会产生大量系统脏数据,从而增加运维DBA的工作量。
发明内容
有鉴于此,本发明实施例提供一种对关系数据库脚本加入事务控制的方法及装置,以提高加入事务控制的效率。
第一方面,本发明实施例提供了一种对关系数据库脚本加入事务控制的方法,所述方法包括:
配置事务颗粒度;
将脚本的行号为事务颗粒度的整数倍的行之前或之后加入事务控制语句。
进一步地,在配置事务颗粒度之前,还包括:
根据是否已经存在事务控制语句,判断是否需要加入事务控制,若是,则触发配置事务颗粒度的操作。
进一步地,将脚本的行号为事务颗粒度的整数倍的行之前或之后加入事务控制语句,包括:
将读取到的脚本的临时行号对事务颗粒度进行取余计算;
在计算结果为0的行之前或之后加入事务控制语句。
进一步地,还包括:
配置数据表信息及导出脚本的数据库版本信息;
将脚本的行号为事务颗粒度的整数倍的行之前或之后加入事务控制语句,包括:
将查询语句的行号对事务颗粒度进行取余计算;
在计算结果为0的行中查询语句的后面加入事务控制语句;
使用动态结构化查询语言行转化列算法将所述事务控制语句与所述查询语句合并为一列;
根据所述数据表信息和导出脚本的数据库版本信息,将加入事务控制语句的查询程序导出为数据库脚本。
进一步地,所述事务颗粒度的范围为200-500。
第二方面,本发明实施例还提供了一种对关系数据库脚本加入事务控制的装置,所述装置包括:
事务颗粒度配置模块,用于配置事务颗粒度;
事务控制加入模块,用于将脚本的行号为事务颗粒度的整数倍的行之前或之后加入事务控制语句。
进一步地,还包括:
判断模块,用于在配置事务颗粒度之前,根据是否已经存在事务控制语句,判断是否需要加入事务控制,若是,则触发配置事务颗粒度的操作。
进一步地,所述事务控制加入模块包括:
第一取余计算单元,用于将读取到的脚本的临时行号对事务颗粒度进行取余计算;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510289793.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据仓库中基于连接索引的查询优化方法
- 下一篇:信息推送方法和装置