一种数据库操作方法及装置制造方法及图纸

技术编号:20160383 阅读:39 留言:0更新日期:2019-01-19 00:13
本发明专利技术公开了一种数据库操作方法及装置,用于限制数据库操作。数据库操作限制方法,包括:数据库确定某一条历史执行语句的影响行数是否超过一定数值,当该条历史执行语句的影响行数超过一定数值时,就发出告警通知或禁止该条语句再执行,防止因一次性操作行数过大造成数据库表中出现大量行锁,甚至升级为表锁,影响其他业务。该方法保障了数据库的稳定性。

【技术实现步骤摘要】
一种数据库操作方法及装置
本专利技术涉计算机软件
,尤其涉及一种数据库操作方法及装置。
技术介绍
互联网时代,业务应用程序通过对数据的处理解决了人类方方面面的问题。业务初始,数据量较小,所以对数据库的批量更新和删除操作都能够在瞬间完成,不会造成较大的影响。但是随着应用在生产上运行时间的增长,数据库中存储的信息量越来越大,许多数据表中都积累了海量的数据。在此场景下批量操作语句就可能对数据库造成致命的危害,比如一条简单的更新语句在没有主键作为检索条件的情况下,一次性就可能更新成千上百万的数据,带来大量的输入/输出(input/output,I/O)、内存、中央处理器(centralprocessingunit,CPU)的消耗,影响数据库处理响应速度;如果遇到事务执行失败,也会产生大量的回滚信息,更加消耗系统资源降低性能;更有可能触发某些数据库的自我保护,将大量的行锁升级为表锁,导致其他结构化查询语言(structuredquerylanguage,SQL)无法执行,造成生产事故。此外,为了保障生产数据的安全,生产数据库中数据的情况是封闭的,批量操作影响的范围在长时间没有人限制梳理的场景下,就会变成一颗定时炸弹,在数据累计到一定大小时爆发出来,因此一个及时限制数据库批量操作执行语句的手段显得至关重要。
技术实现思路
本专利技术提出了一种数据库操作方法及装置,用于解决现有技术中不能及时限制数据库批量操作执行语句的问题。本专利技术实施例提供一种数据库操作方法,该方法包括:获取数据库执行日志中包括的至少一个数据库批量操作执行语句;针对第一数据库批量操作执行语句,若确定所述第一数据库批量操作执行语句的影响行数大于或等于第一阈值,则禁止所述第一数据库批量操作执行语句再次执行,所述第一数据库批量操作执行语句为所述至少一个数据库批量操作执行语句中的任一数据库批量操作执行语句。可选的,所述方法还包括:若确定所述第一数据库批量操作执行语句的影响行数小于所述第一阈值,且大于或等于第二阈值,则发出告警通知;所述第一阈值大于所述第二阈值。可选的,所述确定所述第一数据库批量操作执行语句的影响行数大于或等于第一阈值,包括:若确定所述第一数据库批量操作执行语句在数据库操作执行语句黑名单中,则确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值;所述数据库批量操作执行语句黑名单中包括的数据库批量操作执行语句的影响行数,均大于或等于所述第一阈值。可选的,所述方法还包括:若所述第一数据库批量操作执行语句不在所述数据库操作执行语句黑名单中,则根据所述第一数据库批量操作执行语句的限定条件字段,确定所述第一数据库批量操作执行语句的影响行数;所述限定条件字段为所述数据库批量操作执行语句中限定访问数据条数的部分;在确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值时,禁止所述第一数据库批量操作执行语句再次执行。可选的,在确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值之后,所述方法还包括:将所述第一数据库批量操作执行语句加到所述数据库批量操作执行语句黑名单中。本专利技术实施例中,可根据数据库批量操作执行语句的影响行数,及时限制,对影响行数超过阈值的数据库批量操作执行语句,进行预警或禁止执行,避免了因为影响行数超过阈值的数据库批量操作执行语句消耗的资源过多,造成生产事故。基于同样的专利技术构思,本专利技术实施例进一步地提供一种数据库操作装置,该装置包括:获取模块:用于获取数据库执行日志中包括的至少一个数据库批量操作执行语句;处理模块:用于针对第一数据库批量操作执行语句,若确定所述第一数据库批量操作执行语句的影响行数大于或等于第一阈值,则禁止所述第一数据库批量操作执行语句再次执行,所述第一数据库批量操作执行语句为所述至少一个数据库批量操作执行语句中的任一数据库批量操作执行语句。可选的,所述处理模块还用于:若确定所述第一数据库批量操作执行语句的影响行数小于所述第一阈值,且大于或等于第二阈值,则发出告警通知;所述第一阈值大于所述第二阈值。可选的,所述处理模块具体用于:若确定所述第一数据库批量操作执行语句在数据库操作执行语句黑名单中,则确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值;所述数据库批量操作执行语句黑名单中包括的数据库批量操作执行语句的影响行数,均大于或等于所述第一阈值。可选的,所述处理模块具体用于:若所述第一数据库批量操作执行语句不在所述数据库操作执行语句黑名单中,则根据所述第一数据库批量操作执行语句的限定条件字段,确定所述第一数据库批量操作执行语句的影响行数;所述限定条件字段为所述数据库批量操作执行语句中限定访问数据条数的部分;在确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值时,禁止所述第一数据库批量操作执行语句再次执行。可选的,所述处理模块还用于:将所述第一数据库批量操作执行语句加到所述数据库批量操作执行语句黑名单中。附图说明图1为本专利技术实施例提供的一种数据库操作方法的示意流程图;图2为本专利技术实施例提供的一种数据库操作方法的详细流程图;图3为本专利技术实施例提供的一种数据库操作装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合说明书附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。下面结合说明书附图对本专利技术实施例作进一步详细描述。下面为本专利技术实施例提供的数据库操作限制方法。参考图1,为本专利技术实施例提供的数据库操作限制方法的示意流程图。数据库是长期储存在计算机内、有组织的、可共享的数据集合,数据库里有很多个表,每个表又有很条数据,同一类型的数据记录会放在一张表里,如学籍信息表。每条数据由一个或多个字段组成,如学籍信息表包含多个字段:姓名、学号、入学时间等,姓名就是一个字段。应用在执行业务时,经常要访问数据库,对数据库进行操作。常见的操作有:删除数据,从数据库中删除若干条数据;更新数据,对数据库中若干条数据做修改。具体对哪些数据做何种操作,会通过在数据库管理系统上运行数据库操作执行语句来实现,一般用SQL语句实现。SQL语句的一般结构为:操作关键字表名操作关键字具体修改字段WHEREconditions,其中,conditions为限定条件;如一条更新操作:UPDATE学籍信息表SET姓名=李华WHERE入学时间=2018年9月;表示将姓名为李华的入学时间修改为2018年9月。有些数据库操作执行语句会操作多条数据,比如更新数据库中的100万条数据,仅这一条数据库操作执行语句就会带来大量的IO、内存、CPU的消耗。当一条数据被操作(如被修改、删除时)时,该条数据会被锁定(即行锁)。当一条数据库操作执行语句操作的数据数过多时,会产生大量的行锁,甚至引发这些数据对应的整个数据表被锁定(即表锁),导致其他业务应用不能访问该表;特别是一条错误的数据库操作执行语句,会造成更加严重的后果。因此,执行一条操作数据条数过多的语句会伴随着较高风险。所以通过以下步骤对数据库的操作进行限制。值得一提的是,查本文档来自技高网...

【技术保护点】
1.一种数据库操作方法,其特征在于,包括:获取数据库执行日志中包括的至少一个数据库批量操作执行语句;针对第一数据库批量操作执行语句,若确定所述第一数据库批量操作执行语句的影响行数大于或等于第一阈值,则禁止所述第一数据库批量操作执行语句再次执行,所述第一数据库批量操作执行语句为所述至少一个数据库批量操作执行语句中的任一数据库批量操作执行语句。

【技术特征摘要】
1.一种数据库操作方法,其特征在于,包括:获取数据库执行日志中包括的至少一个数据库批量操作执行语句;针对第一数据库批量操作执行语句,若确定所述第一数据库批量操作执行语句的影响行数大于或等于第一阈值,则禁止所述第一数据库批量操作执行语句再次执行,所述第一数据库批量操作执行语句为所述至少一个数据库批量操作执行语句中的任一数据库批量操作执行语句。2.如权利要求1所述的方法,其特征在于,所述方法还包括:若确定所述第一数据库批量操作执行语句的影响行数小于所述第一阈值,且大于或等于第二阈值,则发出告警通知;所述第一阈值大于所述第二阈值。3.如权利要求1-2任一所述的方法,其特征在于,所述确定所述第一数据库批量操作执行语句的影响行数大于或等于第一阈值,包括:若确定所述第一数据库批量操作执行语句在数据库操作执行语句黑名单中,则确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值;所述数据库批量操作执行语句黑名单中包括的数据库批量操作执行语句的影响行数,均大于或等于所述第一阈值。4.如权利要求3所述的方法,其特征在于,所述方法还包括:若所述第一数据库批量操作执行语句不在所述数据库操作执行语句黑名单中,则根据所述第一数据库批量操作执行语句的限定条件字段,确定所述第一数据库批量操作执行语句的影响行数;所述限定条件字段为所述数据库批量操作执行语句中限定访问数据条数的部分;在确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值时,禁止所述第一数据库批量操作执行语句再次执行。5.如权利要求4所述的方法,其特征在于,在确定所述第一数据库批量操作执行语句的影响行数大于或等于所述第一阈值之后,所述方法还包括:将所述第一数据库批量操作执行语句加到所述数据库批量操作执行语句黑名单...

【专利技术属性】
技术研发人员:白辰曦姜涛黄瑞张桓齐
申请(专利权)人:联动优势电子商务有限公司
类型:发明
国别省市:北京,11

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

1