CN105824808A - 数据库操作方法及装置 - Google Patents
数据库操作方法及装置 Download PDFInfo
- Publication number
- CN105824808A CN105824808A CN201510000550.8A CN201510000550A CN105824808A CN 105824808 A CN105824808 A CN 105824808A CN 201510000550 A CN201510000550 A CN 201510000550A CN 105824808 A CN105824808 A CN 105824808A
- Authority
- CN
- China
- Prior art keywords
- statement
- resource
- database statement
- described database
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据库操作方法及装置。方法包括:获取用于对数据库进行操作的数据库语句;判断数据库语句的执行对数据库性能的影响是否超出预期值;若判断结果为否,将所述数据库语句提交给所述数据库,并指示所述数据库执行所述数据库语句。本申请可以降低对数据库性能的影响。
Description
【技术领域】
本申请涉及数据库技术领域,尤其涉及一种数据库操作方法及装置。
【背景技术】
随着应用的发展,对业务系统性能的要求越来越高。为了提高业务系统的性能,需要将业务系统产生的业务数据存储到数据库中。数据库是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与业务系统彼此独立的数据集合。
在业务系统的运行过程中,若发现有问题,不可避免的需要去查询或者更新数据库中的记录。目前,主要是由开发人员或维护人员手工编写查询语句或者更新语句,使用这些查询语句或更新语句对数据库进行查询或更新操作。
其中,人工编写的语句难免存在一些缺陷,例如用于数据订正的语句里少写了一些条件,导致错误地订正了大量的数据库记录;又例如,用查询语句对一个非常大的表做无索引的查询,导致数据库僵死(hang)住。由此可见,这些缺陷会严重影响数据库的性能。
【发明内容】
本申请的多个方面提供一种数据库操作方法及装置,用以降低对数据库性能的影响。
本申请的一方面,提供一种数据库操作方法,包括:
获取用于对数据库进行操作的数据库语句;
判断所述数据库语句的执行对所述数据库性能的影响是否超出预期值;
若判断结果为否,将所述数据库语句提交给所述数据库,并指示所述数据库执行所述数据库语句。
本申请的另一方面,提供一种数据库操作装置,包括:
获取模块,用于获取用于对数据库进行操作的数据库语句;
判断模块,用于判断所述数据库语句的执行对所述数据库性能的影响是否超出预期值;
第一提交模块,用于在判断结果为否时,将所述数据库语句提交给所述数据库,并指示所述数据库执行所述数据库语句。
在本申请中,获取对数据库进行操作的数据库语句,在将数据库语句提交给数据库之前,判断数据库语句的执行对数据库性能的影响是否超出预期值,若不超出预期值,则将该数据库语句提交给数据库,并指示数据库执行该数据库语句,既可以完成对数据库的操作,又可以降低对数据库性能的影响。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据库操作方法的流程示意图;
图2为本申请另一实施例提供的数据库操作方法的流程示意图;
图3为本申请一实施例提供的数据库操作装置的结构示意图;
图4为本申请另一实施例提供的数据库操作装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在数据库应用过程中,当使用数据库的业务系统发生问题时,一般需要查询或更新数据库中的记录。对数据库进行这些操作难免会影响数据库的性能,为了降低对数据库性能的影响,本申请以下实施例提供一种数据库操作方法,可以解决所述问题。
图1为本申请一实施例提供的数据库操作方法的流程示意图。如图1所示,该方法包括:
101、获取用于对数据库进行操作的数据库语句。
102、判断上述数据库语句的执行对数据库性能的影响是否超出预期值;若判断结果为否,执行步骤103;若判断结果为是,可以结束操作。
103、将上述数据库语句提交给数据库,并指示数据库执行上述数据库语句。
本实施例提供一种数据库操作方法,可由数据库操作装置来执行。该数据库操作装置可位于数据库之前,用于对开发人员提交给数据库的数据库语句进行过滤,以向数据库提供对其性能影响在预期范围内的数据库语句。
本实施例并不限定数据库和数据库语言的类型,可以是Oracle、Sybase、DB2、SQLserver、Access、MySQL、BD2、MangoDB等;相应的,数据库语言可以是结构化查询语言(StructuredQueryLanguage,SQL)或NoSQL等。
具体的,当业务系统中的开发人员或维护人员需要对数据库进行操作,例如查询、更新或删除数据库中有关记录时,需要采用相应的数据库语言编写用于对数据库进行操作的数据库语句,然后将编写好的数据库语句提交给数据库操作装置。值得说明的是,本实施例中的数据库语句可以是简单语句,也可以是复合语句。
例如,开发人员或维护人员可以将预先编写好的数据库语句传输给数据库操作装置;或者,开发人员或维护人员也可以直接在数据库操作装置上编写数据库语句;或者,开发人员或维护人员也可以在其他装置上编写好数据库语句,将数据库语句的存储路径提供给数据库操作装置,数据库操作装置根据该存储路径获取数据库语句,等等。
数据库操作装置获取到数据库语句后,判断数据库语句的执行对数据库性能的影响是否超出预期值。若判断结果为否,即该数据库语句的执行对数据库性能的影响未超出预期值,则可以将该数据库语句提交给数据库,并指示数据库执行该数据库语句,实现对数据库的相应操作,同时可以降低对数据库性能的影响。若判断结果为是,可选的,向开发人员或维护人员输出提示信息,例如可以直接抛错,以供开发人员或维护人员修正数据库语句。对于修正后的数据库语句,数据库操作装置可以重新判断其执行对数据库性能的影响是否超出预期值,若不超出预期值,则提交数据库并指示数据库执行,若超出了预期值,则继续输出提示信息,供开发人员或维护人员做进一步修正,直到该数据库语句的执行对数据库性能的影响不超出预期值为止。
值得说明的是,一般数据库语句的执行都会影响数据库的性能,但有一个可被接受的影响范围,本实施例设定一预期值来表示对数据库性能的可接受的影响范围。本申请实施例中所述的数据库语句的执行对数据库性能的影响未超出预期值主要是指常规影响,相应的,数据库语句的执行对数据库性能的影响超出预期值主要是指非常规的影响,属于预期外的,不符合用户想要的结果的影响。举例说明,对于一个查询语句,用户预期的是用索引,则需要消耗的查询时间应该是3毫秒,若开发人员提交的查询语句明显没有用索引,而是会进行全表扫描,这样的查询语句用来查询较大的表,可能消耗了3秒仍然不能查询出结果,则这就属于本实施例所说的超出预期值的影响。再例如,对于更新语句,用户预期的锁表时间可能是1毫秒,若开发人员提交的更新语句可能会一直锁住表,不释放,则这也属于本实施例所说的超出预期值的影响。再例如,对于更新语句,根据业务需求,用户期望更新次数不超过10次,若开发人员提交的更新语句明显没有更新次数的限制,而是会无限制的更新下去,则这也属于本实施例所说的超出预期值的影响。再例如,对于更新语句,根据业务需求,用户期望更新的记录数不大于预期条数,若开发人员提交的更新语句有问题,可能是忘记加限制条件,结果会将这个表里的100万条记录都更新掉,则这也属于本实施例所说的超出预期值的影响。
具体来说,数据库语句的执行对数据库性能的影响是否超出预期值,主要是考虑该数据库语句的执行性能。若数据库语句的执行性能较好,则认为数据库语句的执行对数据库性能的影响属于常规影响,不会超出预期值,若数据库语句的执行性能较差,则认为数据库语句的执行对数据库性能的影响可能会比较大,会超出预期值。
本实施例通过数据库语句被执行时需要占用的资源来衡量数据库语句的执行性能。若数据库语句被执行时需要占用的资源较多,则认为该数据库语句的执行性能较差;若数据库语句被执行时需要占用的资源较少,则认为数据库语句的执行性能较好。为便于评定数据库语句被执行时需要占用的资源的多少,预先配置一资源门限,记为第一资源门限。
具体的,数据库操作装置可以判断数据库语句被执行时需要占用的资源是否大于第一资源门限;若数据库语句被执行时需要占用的资源大于或等于第一资源门限,则确定数据库语句的执行对数据库性能的影响会超出预期值;若数据库语句被执行时需要占用的资源小于第一资源门限,则确定数据库语句逇执行对数据库性能的影响不超出预期值。
由于数据库语句并未真正被数据库执行,所以数据库语句被执行时需要消耗的资源并不能真实的获取到,则可以采用以下方式判断数据库语句被执行时需要占用的资源是否大于或等于第一资源门限。
第一种方式,数据库操作装置可以根据数据库语句要实现的操作类型(例如查询、删除或更新)以及数据库语句所要操作的数据量等信息,估算出该数据库语句被执行需要占用的资源。
第二种方式,根据业务系统的实际情况,预先配置一黑名单,该黑名单中存储一些执行时所需资源大于或等于第一资源门限的数据库语句的模板(简称为语句模板)。黑名单中的语句模板可以根据经验总结得到。基于此,数据库操作装置可以判断数据库语句是否匹配黑名单中的语句模板,若匹配,则确定该数据库语句被执行时需要占用的资源大于或等于第一资源门限;若未匹配,则确定该数据库语句被执行时需要占用的资源小于第一资源门限。
第三种方式,根据业务系统的实际情况,预先配置一白名单,该白名单中存储一些执行时所需资源小于第一资源门限的数据库语句的模板(简称为语句模板)。白名单中的语句模板也可以根据经验总结得到。基于此,数据库操作装置可以判断数据库语句是否匹配白名单中的语句模板;若未匹配,则确定该数据库语句被执行时需要占用的资源大于或等于第一资源门限;若匹配,则确定该数据库语句被执行时需要占用的资源小于第一资源门限。
第四种方式,数据库语句的算法逻辑在一定程度上可以反映数据库语句被执行时需要占用的资源的多少。一般来说,算法逻辑合理的数据库语句被执行时需要占用的资源较少(在本实施例中认为小于第一资源门限),算法逻辑不合理的数据库语句被执行时需要占用的资源较多(在本实施例中认为大于或等于第一资源门限)。基于此,预先配置一些合理的算法逻辑,构成通用算法逻辑规则,数据库操作装置可以判断数据库语句的算法逻辑是否符合通用算法逻辑规则,若不符合,则确定该数据库语句被执行时需要占用的资源大于或等于第一资源门限;若符合,则确定该数据库语句被执行时需要占用的资源小于第一资源门限。
在该方式中,数据库操作装置可以对数据库语句进行语法分析,获得数据库语句的算法逻辑。或者,数据库操作装置也可以将数据库语句提交给数据库,指示数据库对数据库语句进行分析并返回该数据库语句的执行计划;数据库操作装置根据数据库语句的执行计划,获得数据库语句的算法逻辑。
举例说明,假设要对一个非常大的表(假设该表有100万条记录)进行查询,该表包括字段job和字段name,其中,字段iob没有索引,而字段name是有索引的,若接收到开发人员提交的一条数据库语句为:SQL>SELECT*FROMempWHEREjob='CLERK',该数据库语句的算法逻辑是一种属于没有索引的查询;另外接收到开发人员提交的一种数据库语句为:select*fromempwherename=’steven’,该数据库语句的算法逻辑是一种基于索引的查询。
基于上述例子,数据库操作装置可以判断该实现查询操作的数据库语句是否使用了索引,若判断结果为否,则确定该数据库语句被执行时需要占用的资源大于或等于第一资源门限;若判断结果为是,则确定该数据库语句被执行时需要占用的资源小于第一资源门限。
又例如,假设要对表中的记录进行更新,假设该表有100万条记录,该表包括字段job和字段name,其中,字段iob没有索引,而字段name是有索引的,需要更新的字段为sex,若接收到开发人员提交的一条数据库语句为:updateempsetsex=‘male’wherejob=’CLERK’,该数据库语句的算法逻辑是一种属于没有索引的更新,是不被允许的;另外接收到开发人员提交的一种数据库语句为:updateempsetsex=’male’wherename=’steven’,该数据库语句的算法逻辑是一种基于索引的更新,是被允许的。另外,若预先规定更新类语句必须加查询条件,防止人为误操作,则若接收到开发人员提交的一条数据库语句为:updateempsetsex=’male’,该数据库语句的算法逻辑是一种没有限制条件的更新,也是不被允许的。
基于上述例子,数据库操作装置可以判断该实现更新操作的数据库语句是否是基于唯一性索引,或添加限制条件(例如主键)进行的更新,若判断结果为否,则确定该数据库语句被执行时需要占用的资源大于或等于第一资源门限;若判断结果为是,则确定该数据库语句被执行时需要占用的资源小于第一资源门限。
值得说明的是,上述第二、第三和第四种方式也可以两两组合或三者组合起来使用。以上述第二、第三和第四种方式三者组合使用为例,可以获得如下第五种方式:
第五种方式,判断数据库语句是否匹配黑名单中的语句模板;若未匹配黑名单中的语句模板,判断数据库语句是否匹配白名单中的语句模板;若未匹配白名单中的语句模板,判断数据库语句的算法逻辑是否符合通用算法逻辑规则;若匹配白名单中的语句模板,或数据库语句的算法逻辑符合通用算法逻辑规则,确定数据库语句被执行时需要占用的资源小于第一资源门限;若匹配黑名单中的语句模板,或数据库语句的算法逻辑不符合通用算法逻辑规则,确定数据库语句被执行时需要占用的资源大于或等于第一资源门限。
值得说明的是,上述各实施例方式中涉及的数据库语句被执行时需要占用的资源可以包括时间资源、CPU资源和/或内存资源。在实际使用过程中,可以仅考虑时间资源、也可以仅考虑CPU资源、也可以仅考虑内存资源,还可以同时考虑时间资源、CPU资源和内存资源的任意组合。值得说明的是,若同时考虑两种或以上的资源,则第一资源门限可以包括两个或以上的子门限,分别对应每种资源。以同时考虑时间资源和内存资源为例,如果数据库语句被执行耗时较长,例如大于预设的时间门限,且占用的内存资源大于预设的存储门限,则意味着数据库语句的执行性能较差;反之,意味着数据库语句的执行性能较好。
基于上述各种方式,若确定数据库语句被执行时需要占用的资源大于或等于第一资源门限,意味着数据库语句的执行性能较好。在这种情况下,数据库操作装置可以将数据库语句提交给数据库,并指示数据库执行该数据库语句,实现对数据库的操作,同时还可以降低对数据库性能的影响。
图2为本申请另一实施例提供的数据库操作方法的流程示意图。如图2所示,该方法包括:
201、获取用于对数据库进行操作的数据库语句。
202、判断上述数据库语句的执行对数据库性能的影响是否超出预期值;若判断结果为否,执行步骤203;若判断结果为是,结束操作。
203、将上述数据库语句提交给数据库,并指示数据库执行上述数据库语句。
204、监控上述数据库语句的执行过程,以获得执行数据库语句占用的资源。
205、若执行数据库语句占用的资源大于或等于第二资源门限,指示数据库停止执行数据库语句。
本实施例可基于图1所示实施例实现。本实施例与图1所示实施例的区别在于:在数据库执行数据库语句过程中,监控数据库语句的执行过程,以获得执行该数据库语句占用的资源,若执行该数据库语句占用的资源大于或等于第二资源门限,说明该数据库语句的执行性能较差,需要数据库及时停止该数据库语句的执行,以便于降低对数据库性能的影响。
上述执行数据库语句占用的资源包括时间资源、CPU资源和/或内存资源。
举例说明,数据库操作装置可以将数据库语句提交给数据库时,记录该数据库语句的相关信息,根据相关信息监控该数据库语句的执行过程,判断该数据库语句是否长时间未返回执行结果,或者判断该数据库语句的执行是否造成长时间锁表,若判断结果为是,则说明该数据库语句的执行性能较差,反之,说明该数据库语句的执行性能较好。另外,数据库操作装置除了判断数据库语句占用的时间资源之外,还可以判断执行数据库语句占用的内存资源和/或CPU资源,若占用的内存资源和/或CPU资源较多,也说明数据库语句的执行性能较差;反之,说明数据库语句的执行性能较好。
由上述可见,本实施例在将数据库语句提交给数据库之前,判断数据库语句的执行对数据库性能的影响是否超出预期值,若未超出预期值,则将该数据库语句提交给数据库,并指示数据库执行该数据库语句,既可以完成对数据库的操作,又可以降低对数据库性能的影响;进一步在数据库执行该数据库语句的过程中,监控数据库语句的执行过程,根据执行数据库语句所占用的资源进一步判断数据库语句的执行是否会严重影响数据库的性能,并在判断出会严重影响数据库的性能的情况下,及时指示数据库停止执行该数据库语句,可以进一步降低对数据库性能的影响。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本申请一实施例提供的数据库操作装置的结构示意图。如图3所示,该装置包括:获取模块31、判断模块32和第一提交模块33。
获取模块31,用于获取用于对数据库进行操作的数据库语句。
判断模块32,用于判断获取模块31获取的数据库语句的执行对数据库性能的影响是否超出预期值。
第一提交模块33,用于在判断模块32的判断结果为否时,将数据库语句提交给数据库,并指示数据库执行数据库语句。
在一可选实施方式中,如图4所示,该数据库操作装置还包括:提示模块34,用于在判断模块32的判断结果为是时,输出提示信息,以供开发人员修正数据库语句。
在一可选实施方式中,判断模块具体用于:
判断数据库语句被执行时需要占用的资源是否大于或等于第一资源门限;若判断结果为是,确定数据库语句的执行对数据库性能的影响超出预期值;若判断结果为否,确定数据库语句的执行对数据库性能的影响未超出预期值。
可选的,判断模块32进一步具体用于:
判断数据库语句是否匹配黑名单中的语句模板;若判断结果为是,确定数据库语句被执行时需要占用的资源大于或等于第一资源门限;若判断结果为否,确定数据库语句被执行时需要占用的资源小于第一资源门限。
可选的,判断模块32进一步具体用于:
判断数据库语句是否匹配白名单中的语句模板;若判断结果为是,确定数据库语句被执行时需要占用的资源小于第一资源门限;若判断结果为否,确定数据库语句被执行时需要占用的资源大于或等于第一资源门限。
可选的,判断模块32进一步具体用于:
判断数据库语句的算法逻辑是否符合通用算法逻辑规则;若判断结果为是,确定数据库语句被执行时需要占用的资源小于第一资源门限;若判断结果为否,确定数据库语句被执行时需要占用的资源大于或等于第一资源门限。
可选的,判断模块32进一步具体用于:
判断数据库语句是否匹配黑名单中的语句模板;若未匹配黑名单中的语句模板,判断数据库语句是否匹配白名单中的语句模板;若未匹配白名单中的语句模板,判断数据库语句的算法逻辑是否符合通用算法逻辑规则;若匹配白名单中的语句模板,或数据库语句的算法逻辑符合通用算法逻辑规则,确定数据库语句被执行时需要占用的资源小于第一资源门限;若匹配黑名单中的语句模板,或数据库语句的算法逻辑不符合通用算法逻辑规则,确定数据库语句被执行时需要占用的资源大于或等于第一资源门限。
在一可选实施方式中,如图4所示,该数据库操作装置还包括:第二提交模块35和分析模块36。
第二提交模块35,用于将获取模块31获取的数据库语句提交给数据库,并指示数据库返回数据库语句的执行计划;
分析模块36,用于根据数据库返回的数据库语句的执行计划,获得数据库语句的算法逻辑。
在一可选实施方式中,如图4所示,该数据库操作装置还包括:监控模块37和指示模块38。
监控模块37,用于监控数据库语句的执行过程,以获得执行数据库语句占用的资源。
指示模块38,用于在监控模块37获得的执行数据库语句占用的资源大于或等于第二资源门限时,指示数据库停止执行数据库语句。
值得说明的是,上述执行数据库语句占用的资源包括时间资源、CPU资源和/或内存资源。相应的,上述数据库语句被执行时占用的资源也包括时间资源、CPU资源和/或内存资源。
本实施例提供的数据库操作装置,获取对数据库进行操作的数据库语句,在将数据库语句提交给数据库之前,判断数据库语句的执行对数据库性能的影响是否会超出预期值,若未超出预期值,则将该数据库语句提交给数据库,并指示数据库执行该数据库语句,既可以完成对数据库的操作,又可以降低对数据库性能的影响。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (16)
1.一种数据库操作方法,其特征在于,包括:
获取用于对数据库进行操作的数据库语句;
判断所述数据库语句的执行对所述数据库性能的影响是否超出预期值;
若判断结果为否,将所述数据库语句提交给所述数据库,并指示所述数据库执行所述数据库语句。
2.根据权利要求1所述的方法,其特征在于,还包括:
若判断结果为是,输出提示信息,以供开发人员修正所述数据库语句。
3.根据权利要求1所述的方法,其特征在于,所述判断所述数据库语句的执行对所述数据库性能的影响是否超出预期值,包括:
判断所述数据库语句被执行时需要占用的资源是否大于或等于第一资源门限;
若判断结果为是,确定所述数据库语句的执行对所述数据库性能的影响超出所述预期值;
若判断结果为否,确定所述数据库语句的执行对所述数据库性能的影响未超出所述预期值。
4.根据权利要求3所述的方法,其特征在于,所述判断所述数据库语句被执行时需要占用的资源是否大于或等于第一资源门限,包括:
判断所述数据库语句是否匹配黑名单中的语句模板;
若判断结果为是,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限;
若判断结果为否,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限。
5.根据权利要求3所述的方法,其特征在于,所述判断所述数据库语句被执行时需要占用的资源是否大于或等于第一资源门限,包括:
判断所述数据库语句是否匹配白名单中的语句模板;
若判断结果为是,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限;
若判断结果为否,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限。
6.根据权利要求3所述的方法,其特征在于,所述判断所述数据库语句被执行时需要占用的资源是否大于或等于第一资源门限,包括:
判断所述数据库语句的算法逻辑是否符合通用算法逻辑规则;
若判断结果为是,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限;
若判断结果为否,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限。
7.根据权利要求3所述的方法,其特征在于,所述判断所述数据库语句被执行时需要占用的资源是否大于或等于第一资源门限,包括:
判断所述数据库语句是否匹配黑名单中的语句模板;
若未匹配所述黑名单中的语句模板,判断所述数据库语句是否匹配白名单中的语句模板;
若未匹配所述白名单中的语句模板,判断所述数据库语句的算法逻辑是否符合通用算法逻辑规则;
若匹配所述白名单中的语句模板,或所述数据库语句的算法逻辑符合通用算法逻辑规则,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限;
若匹配所述黑名单中的语句模板,或所述数据库语句的算法逻辑不符合通用算法逻辑规则,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限。
8.根据权利要求1-7任一项所述的方法,其特征在于,还包括:
监控所述数据库语句的执行过程,以获得执行所述数据库语句占用的资源;
若执行所述数据库语句占用的资源大于或等于第二资源门限,指示所述数据库停止执行所述数据库语句。
9.一种数据库操作装置,其特征在于,包括:
获取模块,用于获取用于对数据库进行操作的数据库语句;
判断模块,用于判断所述数据库语句的执行对所述数据库性能的影响是否超出预期值;
第一提交模块,用于在判断结果为否时,将所述数据库语句提交给所述数据库,并指示所述数据库执行所述数据库语句。
10.根据权利要求9所述的装置,其特征在于,还包括:
提示模块,用于在判断结果为是时,输出提示信息,以供开发人员修正所述数据库语句。
11.根据权利要求9所述的装置,其特征在于,所述判断模块具体用于:
判断所述数据库语句被执行时需要占用的资源是否大于或等于第一资源门限;
若判断结果为是,确定所述数据库语句的执行对所述数据库性能的影响超出所述预期值;
若判断结果为否,确定所述数据库语句的执行对所述数据库性能的影响未超出所述预期值。
12.根据权利要求11所述的装置,其特征在于,所述判断模块进一步具体用于:
判断所述数据库语句是否匹配黑名单中的语句模板;
若判断结果为是,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限;
若判断结果为否,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限。
13.根据权利要求11所述的装置,其特征在于,所述判断模块进一步具体用于:
判断所述数据库语句是否匹配白名单中的语句模板;
若判断结果为是,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限;
若判断结果为否,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限。
14.根据权利要求11所述的装置,其特征在于,所述判断模块进一步具体用于:
判断所述数据库语句的算法逻辑是否符合通用算法逻辑规则;
若判断结果为是,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限;
若判断结果为否,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限。
15.根据权利要求11所述的装置,其特征在于,所述判断模块进一步具体用于:
判断所述数据库语句是否匹配黑名单中的语句模板;
若未匹配所述黑名单中的语句模板,判断所述数据库语句是否匹配白名单中的语句模板;
若未匹配所述白名单中的语句模板,判断所述数据库语句的算法逻辑是否符合通用算法逻辑规则;
若匹配所述白名单中的语句模板,或所述数据库语句的算法逻辑符合通用算法逻辑规则,确定所述数据库语句被执行时需要占用的资源小于所述第一资源门限;
若匹配所述黑名单中的语句模板,或所述数据库语句的算法逻辑不符合通用算法逻辑规则,确定所述数据库语句被执行时需要占用的资源大于或等于所述第一资源门限。
16.根据权利要求9-15任一项所述的装置,其特征在于,还包括:
监控模块,用于监控所述数据库语句的执行过程,以获得执行所述数据库语句占用的资源;
指示模块,用于在执行所述数据库语句占用的资源大于或等于第二资源门限时,指示所述数据库停止执行所述数据库语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510000550.8A CN105824808A (zh) | 2015-01-04 | 2015-01-04 | 数据库操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510000550.8A CN105824808A (zh) | 2015-01-04 | 2015-01-04 | 数据库操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105824808A true CN105824808A (zh) | 2016-08-03 |
Family
ID=56986786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510000550.8A Pending CN105824808A (zh) | 2015-01-04 | 2015-01-04 | 数据库操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824808A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241109A (zh) * | 2018-08-20 | 2019-01-18 | 联动优势电子商务有限公司 | 一种数据库操作方法及装置 |
CN110309123A (zh) * | 2019-05-22 | 2019-10-08 | 中国平安人寿保险股份有限公司 | 数据库操作的处理方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763389A (zh) * | 2008-12-23 | 2010-06-30 | 中兴通讯股份有限公司 | 一种数据库资源的调控装置及方法 |
CN103064875A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 一种服务化空间数据分布式查询方法 |
-
2015
- 2015-01-04 CN CN201510000550.8A patent/CN105824808A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763389A (zh) * | 2008-12-23 | 2010-06-30 | 中兴通讯股份有限公司 | 一种数据库资源的调控装置及方法 |
CN103064875A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 一种服务化空间数据分布式查询方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241109A (zh) * | 2018-08-20 | 2019-01-18 | 联动优势电子商务有限公司 | 一种数据库操作方法及装置 |
CN110309123A (zh) * | 2019-05-22 | 2019-10-08 | 中国平安人寿保险股份有限公司 | 数据库操作的处理方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7739269B2 (en) | Incremental repair of query plans | |
CN106598992B (zh) | 数据库的操作方法及装置 | |
CN109542901B (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
CN101268620B (zh) | 用于管理设备管理对象的设备管理系统和方法 | |
Song et al. | Efficient discovery of similarity constraints for matching dependencies | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US20110258179A1 (en) | Methods and systems for optimizing queries in a multi-tenant store | |
CN107729371B (zh) | 区块链的数据索引及查询方法、装置、设备及存储介质 | |
US20140115012A1 (en) | Data model optimization using multi-level entity dependencies | |
CN104871154A (zh) | 系统级查询优化 | |
US11907213B2 (en) | Query processing method, data source registration method, and query engine | |
WO2015074466A1 (zh) | 一种数据查询方法及装置 | |
Gal et al. | From diversity-based prediction to better ontology & schema matching | |
US20120047124A1 (en) | Database query optimizations | |
CN104137095A (zh) | 用于演进分析的系统 | |
CN102385588A (zh) | 用于提高数据并行插入的性能的方法和系统 | |
CN110737806A (zh) | 面向业务实体的全局id生成方法及装置 | |
JP2018538634A (ja) | データベース動作方法及び装置 | |
CN105824808A (zh) | 数据库操作方法及装置 | |
CN113672641A (zh) | 数据库集群数据处理方法、装置、系统、介质和电子设备 | |
US20110093688A1 (en) | Configuration management apparatus, configuration management program, and configuration management method | |
CN112463795A (zh) | 一种动态哈希方法、装置、设备及存储介质 | |
CN108780452B (zh) | 一种存储过程处理方法及装置 | |
CN111399759B (zh) | 读数据、写数据的方法、以及对象文件系统 | |
CN114461605B (zh) | 内存多维数据库的事务数据多版本实现方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160803 |
|
RJ01 | Rejection of invention patent application after publication |