CN106980637A - Sql审核方法和装置 - Google Patents
Sql审核方法和装置 Download PDFInfo
- Publication number
- CN106980637A CN106980637A CN201610860550.XA CN201610860550A CN106980637A CN 106980637 A CN106980637 A CN 106980637A CN 201610860550 A CN201610860550 A CN 201610860550A CN 106980637 A CN106980637 A CN 106980637A
- Authority
- CN
- China
- Prior art keywords
- sql
- examination
- verification
- sql statement
- auditing result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012795 verification Methods 0.000 claims abstract description 285
- 238000004458 analytical method Methods 0.000 claims abstract description 56
- 238000012550 audit Methods 0.000 claims abstract description 33
- 238000000605 extraction Methods 0.000 claims description 20
- 239000012141 concentrate Substances 0.000 claims description 18
- 239000000284 extract Substances 0.000 claims description 14
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 14
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005065 mining Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/2454—Optimisation of common expressions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Abstract
本发明涉及一种SQL审核和装置。上述方法包括:获取慢日志数据;从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息;识别并解析所述SQL语句,得到解析结果;逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果;根据所述审核结果生成审核结果集。上述SQL审核和装置,能够为数据字典信息不完善的数据库扩展出可进行SQL深度审核SQL语句及与SQL语句匹配的基本信息,使SQL审核更具有针对性,并有效提高了SQL审核的准确性。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种SQL审核方法和装置。
背景技术
在数据库的工作中,经常需要对数据库执行的SQL(Structured Query Language,结构化查询语言)语句进行审核,从而避免性能太差的SQL语句进入生产系统,导致数据库的整体性能降低。对于一些数据字典信息不完善的数据库,例如MySQL、Postgres等数据库的SQL审核,在传统方式中仅能通过SQL脚本解析SQL语句,进行一些简单的审核工作,而无法对SQL进行更深度的审核,例如SQL的执行计划审核等,导致SQL审核不准确。
发明内容
基于此,有必要提供一种SQL审核方法,能使一些数据字典信息不完善的数据库对SQL进行更深度的审核,提高SQL审核的准确性。
此外,还有必要提供一种SQL审核装置,能使一些数据字典信息不完善的数据库对SQL进行更深度的审核,提高SQL审核的准确性。
一种SQL审核方法,包括:
获取慢日志数据;
从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息;
识别并解析所述SQL语句,得到解析结果;
逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果;
根据所述审核结果生成审核结果集。
在其中一个实施例中,所述从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息,包括:
根据预设格式分析所述慢日志数据,并生成慢日志数据列表;
根据所述慢日志数据列表中的字段名从所述慢日志数据列表中提取待审核的SQL语句及与所述SQL语句匹配的基本信息。
在其中一个实施例中,所述预设的审核模板包括执行计划审核模板及SQL语法审核模板;
所述逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果,包括:
逐一按照所述执行计划审核模板中的审核项目,提取所述基本信息中与所述审核项目匹配的数据进行审核,得到审核结果;
和/或
逐一按照所述SQL语法审核模板中的审核项目,对所述解析结果进行语法分析,并根据分析结果进行审核,得到审核结果。
在其中一个实施例中,在所述根据所述审核结果生成审核结果集的步骤之后,还包括:
提取所述审核结果集中审核结果为不通过的SQL语句建立SQL基线;
分析所述SQL基线得到SQL审核数据,并展示所述SQL审核数据。
在其中一个实施例中,所述提取所述审核结果集中审核结果为不通过的SQL语句建立SQL基线,包括:
提取所述审核结果集中审核结果为不通过的SQL语句;
获取所述审核结果为不通过的SQL语句的SQL编号及不通过的审核项目编号;
根据所述SQL编号及不通过的审核项目编号判断是否存在匹配的SQL基线,若是,则将所述SQL基线的状态标记为不通过,若否,则根据所述SQL编号及不通过的审核项目编号建立SQL基线。
一种SQL审核装置,包括:
获取模块,用于获取慢日志数据;
提取模块,用于从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息;
解析模块,用于识别并解析所述SQL语句,得到解析结果;
审核模块,用于逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果;
生成模块,用于根据所述审核结果生成审核结果集。
在其中一个实施例中,所述提取模块,包括:
列表生成单元,用于根据预设格式分析所述慢日志数据,并生成慢日志数据列表;
信息提取单元,用于根据所述慢日志数据列表中的字段名从所述慢日志数据列表中提取待审核的SQL语句及与所述SQL语句匹配的基本信息。
在其中一个实施例中,所述预设的审核模板包括执行计划审核模板及SQL语法审核模板;
所述审核模块,还用于逐一按照所述执行计划审核模板中的审核项目,提取所述基本信息中与所述审核项目匹配的数据进行审核,得到审核结果;
和/或
逐一按照所述SQL语法审核模板中的审核项目,对所述解析结果进行语法分析,并根据分析结果进行审核,得到审核结果。
在其中一个实施例中,所述装置还包括:
建立模块,用于提取所述审核结果集中审核结果为不通过的SQL语句建立SQL基线;
展示模块,用于分析所述SQL基线得到SQL审核数据,并展示所述SQL审核数据。
在其中一个实施例中,所述建立模块,包括:
语句提取单元,用于提取所述审核结果集中审核结果为不通过的SQL语句;
获取单元,用于获取所述审核结果为不通过的SQL语句的SQL编号及不通过的审核项目编号;
判断单元,用于根据所述SQL编号及不通过的审核项目编号判断是否存在匹配的SQL基线,若是,则将所述SQL基线的状态标记为不通过,若否,则根据所述SQL编号及不通过的审核项目编号建立SQL基线。
上述SQL审核方法和装置,从慢日志数据中提取待审核的SQL语句及与SQL语句匹配的基本信息,并按照预设的审核模板中的审核项目,对解析SQL语句得到的解析结果及与SQL语句匹配的基本信息进行审核,通过挖掘分析慢日志数据,能够为数据字典信息不完善的数据库扩展出可进行SQL深度审核SQL语句及与SQL语句匹配的基本信息,使SQL审核更具有针对性,并有效提高了SQL审核的准确性。
附图说明
图1为一个实施例中服务器的内部结构示意图;
图2为一个实施例中SQL审核方法的流程示意图;
图3为一个实施例中按照预设的审核模板中的审核项目进行审核的流程示意图;
图4为一个实施例中建立SQL基线并进行分析的流程示意图;
图5为一个实施例中建立SQL基线的流程示意图;
图6为一个实施例中SQL审核装置的结构示意图;
图7为一个实施例中提取模块的内部结构示意图;
图8为另一个实施例中SQL审核装置的结构示意图;
图9为一个实施例中建立模块的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中服务器的内部结构示意图。如图1所示,该服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器的非易失性存储介质存储有操作系统、数据库和SQL审核装置,数据库中存储有慢日志数据,该SQL审核装置用于实现适用于服务器的一种SQL审核方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存储器为非易失性存储介质中的SQL审核装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行SQL审核方法。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的修改后的SQL语句以及向终端返回SQL审核数据等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图2所示,提供了一种SQL审核方法,包括以下步骤:
步骤S210,获取慢日志数据。
具体的,服务器可通过外部链接表的方式,从数据字典信息不完善的目标数据库中获取慢日志数据,例如、MySQL、Postgres等目标数据库,其中,慢日志数据指的是慢查询日志数据,在数据库中超过指定时间的SQL语句查询称为“慢查询”,慢日志数据记录有超过指定时间的SQL语句,以及日志时间、存储位置、执行时间、执行者编号等SQL语句执行时产生的相关数据。
步骤S220,从慢日志数据中提取待审核的SQL语句及与SQL语句匹配的基本信息。
具体的,可从获取的慢日志数据中提取待审核的SQL语句,以及审核SQL语句所需的与待审核的SQL语句匹配的基本信息,基本信息可根据预设的审核模板中的审核项目进行提取,基本信息可包括执行次数、执行总时间、执行操作、执行开销等。通过慢日志数据中提取待审核的SQL语句,相当于对SQL语句进行筛选,根据SQL语句的执行时间过滤性能好的SQL语句,超过指定时间的性能较差的SQL语句则进行审核。
在一个实施例中,步骤S220从慢日志数据中提取待审核的SQL语句及与SQL语句匹配的基本信息,包括以下步骤:
(a)根据预设格式分析慢日志数据,并生成慢日志数据列表。
具体的,可分析慢日志数据并按照预设格式提取慢日志数据中的数据,预设格式可根据实际需求进行设定,例如,预设格式可包括字段名、字段类型、字段内容,则提取慢日志数据中各个字段名,以及与字段名对应的字段类型及字段内容。可根据按照预设格式从慢日志数据提取的数据生成慢日志数据列表,慢日志数据列表的格式内容与预设格式及提取的数据对应,例如,慢日志数据列表可如表1所示:
表1
字段名 | 字段类型 | 字段内容 |
log_time | Timestamp(3)with time zone | 20160523 |
user_name | text | ZhangSan |
database_name | text | DB1 |
userid | oid | 267975431 |
calls | bigint | 5 |
total_time | Double precision | 35 |
其中,log_time为日志时间,user_name为用户名,database_name为数据库名,userid为用户编号,calls为执行次数,total_time为执行总时间,可以理解地,慢日志数据列表中的内容及格式并不限于表1所示的内容及格式。
(b)根据慢日志数据列表中的字段名从慢日志数据列表中提取待审核的SQL语句及与SQL语句匹配的基本信息。
具体的,可在慢日志数据列表中,提取字段名为query,即字段名为执行语句的字段内容作为待审核的SQL语句,并根据预设的审核模板中的审核项目,从慢日志数据列表中提取对应的与SQL语句匹配的基本信息,例如,预设的审核模板中的审核项目包括执行时间,则从慢日志数据列表中提取字段名为calls及total_time的字段内容作为与SQL语句匹配的基本信息。
步骤S230,识别并解析SQL语句,得到解析结果。
具体的,可对从慢日志数据中提取的SQL语句进行识别解析,得到可被审核模板识别的解析结果,在本实施例中,解析SQL语句后可得到SQL树形解析结果,方便按照审核模板中的审核项目对解析结果进行审核。
步骤S240,逐一按照预设的审核模板中的审核项目,对解析结果和/或基本信息进行审核,得到审核结果。
具体的,预设的审核模板可包括执行计划审核模板及SQL语法审核模板。执行计划审核模板是对SQL语句的执行计划进行审核,在数据库中,一个SQL语句表示想要得到的数据,但是并没有表示如何获取数据,例如,通过一个SQL语句,可以取出所有住在深圳的客户.当服务器中的数据库接收到的这条SQL的时候,通过计算会选择读取整个客户表还是利用索引进行获取数据,最终SQL语句被物理性执行的方法被称为执行计划。执行计划审核模板的审核项目可包括慢查询、高成本操作等。SQL语法审核模板是对SQL语句本身的语法语义进行审核,SQL语法审核模板的审核项目可包括禁止出现重复查询子句、禁止出现select*等。服务器可逐一按照预设的审核模板中的各个审核项目,对解析结果和/或基本信息进行审核,当不满足审核模板中的任一审核项目时,则审核不通过,当全部符合审核模板中的各个审核项目时,则审核通过。
步骤S250,根据审核结果生成审核结果集。
具体的,可对从慢日志数据中提取的多个SQL语句及与各个SQL语句匹配的基本信息进行审核,并根据审核结果生成审核结果集,审核结果集可包括审核的SQL语句的SQL编号、数据库名称、执行时间、命令类型、审核状态、违规项目等内容,并将审核结果集存储在审计数据库中,其中,审核状态表示审核结果,可用0、1等数字或其它的字母、符号等表示审核结果为不通过或是通过。
上述SQL审核方法,从慢日志数据中提取待审核的SQL语句及与SQL语句匹配的基本信息,并按照预设的审核模板中的审核项目,对解析SQL语句得到的解析结果及与SQL语句匹配的基本信息进行审核,通过挖掘分析慢日志数据,能够为数据字典信息不完善的数据库扩展出可进行SQL深度审核SQL语句及与SQL语句匹配的基本信息,使SQL审核更具有针对性,并有效提高了SQL审核的准确性。
如图3所示,在一个实施例中,步骤S240逐一按照预设的审核模板中的审核项目,对解析结果和/或基本信息进行审核,得到审核结果,可包括步骤S302和/或步骤S304:
步骤S302,逐一按照执行计划审核模板中的审核项目,提取基本信息中与审核项目匹配的数据进行审核,得到审核结果。
具体的,预设的审核模板可包括执行计划审核模板及SQL语法审核模板,执行计划审核模板是对SQL语句的执行计划进行审核。执行计划审核模板中的审核项目可包括慢查询、高成本操作等项目,其中,慢查询的审核内容为判断SQL语句的执行时间是否大于预设的执行时间,例如,执行时间是否大于1s(秒),高成本操作的审核内容为判断SQL语句中是否有高成本操作,例如,是否有Seq Scan(序列扫描)、全表扫描等操作。执行计划审核模板的审核项目所审核的内容一般需要从与SQL语句匹配的基本信息中获取,例如,审核执行时间是否大于预设的执行时间,则需要从基本信息中获取执行次数及执行总时间,并求取平均值,即执行时间,审核高成本操作则需要获取基本信息中的执行操作。每个审核项目有唯一对应的审核项目编号,当审核不通过时,可记录不通过的审核项目编号。
步骤S304,逐一按照SQL语法审核模板中的审核项目,对解析结果进行语法分析,并根据分析结果进行审核,得到审核结果。
具体的,SQL语法审核模板是对SQL语句本身的语法语义进行审核,SQL语法审核模板的审核项目可包括禁止使用select*、禁止出现重复查询子句、update禁止出现order by子句、update必须出现where子句、禁止嵌套select子句、delete必须出现where子句、delete禁止出现order by子句、delete禁止出现limit子句等。禁止出现重复查询子句的审核项目可提高SQL语句的执行效率,update禁止出现order by子句、delete禁止出现orderby子句及delete禁止出现limit子句的审核项目可防止DML(Data ManipulationLanguage,数据操纵语言)过程出现不必要的排序,update必须出现where子句及delete必须出现where子句的审核项目可防止DML过程出现全表锁。可逐一根据SQL语法审核模板的各个审核项目对解析得到的SQL树形解析结果进行分析审核,并得到审核结果。
预设的审核模板中的各个审核项目可对应不同的审核数值,对审核的SQL语句进行评分。当审核项目不通过时,则将SQL语句的审核总数值扣除不通过的审核项目对应的审核数值,审核结束后,可得到最后的审核数值,通过对SQL语句进行评分可清晰地得到SQL语句的性能好坏程度。例如,执行计划审核模板中的慢查询及高成本操作分别对应的审核数据为1分、2分,SQL语句的审核总数值为100分,若SQL语句不符合慢查询的审核项目,则扣除一分,最后的审核数值为99分。
在本实施例中,可通过执行计划审核模板及SQL语法审核模板对解析SQL语句得到的解析结果和/或与SQL语句匹配的基本信息逐一进行审核,可对数据字典信息不完善的数据库中的SQL进行更深度的审核,使SQL审核更具有针对性,并有效提高了SQL审核的准确性。
如图4所示,在一个实施例中,在步骤S250根据审核结果生成审核结果集之后,还包括以下步骤:
步骤S402,提取审核结果集中审核结果为不通过的SQL语句建立SQL基线。
具体的,SQL基线用于记录审核结果为不通过的SQL语句的相关数据及状态的变化过程,SQL基线可包括SQL语句内容、SQL编号、数据库名称、用户名、审核不通过的审核项目编号、审核状态等,刚建立SQL基线时,审核状态为不通过,当数据库管理员对SQL语句进行整改后,审核状态可修改为通过。
如图5所示,在一个实施例中,步骤S402提取审核结果集中审核结果为不通过的SQL语句建立SQL基线,包括以下步骤:
步骤S502,提取审核结果集中审核结果为不通过的SQL语句。
步骤S504,获取审核结果为不通过的SQL语句的SQL编号及不通过的审核项目编号。
具体的,可提取审核结果集中审核结果为不通过的SQL语句建立SQL基线,可从审核结果集中获取审核结果为不通过的SQL语句的SQL语句内容、SQL编号、数据库名称、用户名、审核不通过的审核项目编号等信息。
步骤S506,根据SQL编号及不通过的审核项目编号判断是否存在匹配的SQL基线,若是,则执行步骤S508,若否,则执行步骤S510。
具体的,SQL语句每个不通过的审核项目可对应于唯一的SQL基线,即每个SQL基线有唯一对应的SQL编号及不通过的审核项目编号,若SQL语句不通过的审核项目有多个,则需建立多个对应的SQL基线。提取审核结果集中审核结果为不通过的SQL语句,并获取SQL编号及不通过的审核项目编号后,可先根据SQL编号查找审计数据库中是否有对应的SQL基线,若有,则再进一步从与SQL编号对应的SQL基线中,查找是否有与审核项目编号匹配的SQL基线,若有,则无需重新建立SQL基线,只需将匹配的SQL基线的审核状态修改为不通过。
步骤S508,将SQL基本的状态标记为不通过。
步骤S510,根据SQL编号及不通过的审核项目编号建立SQL基线。
具体的,若没有与SQL编号及不通过的审核项目编号匹配的SQL基线,则根据SQL编号及不通过的审核项目编号在审计数据库中建立SQL基线,SQL基线中的审核状态标记为不通过。
步骤S404,分析SQL基线得到SQL审核数据,并展示SQL审核数据。
具体的,可每隔预设时间从审计数据库中提取预设时间内新建立的或是状态被重新标记为不通过SQL基线,得到SQL的审核数据,例如,每隔1小时、3小时等时间,SQL的审核数据可包括SQL语句内容、SQL编号、数据库名称、用户名、审核不通过的审核项目编号等内容,并通过终端进行展示。数据库管理员可根据展示的SQL审核数据对SQL语句进行整改,使其符合审核项目,整改完成后,可根据整改结果修改SQL基线的审核状态,若SQL语句审核不通过的审核项目已进行整改,可将与该整改的审核项目编号匹配的SQL基线的审核状态标记为通过。在其它的实施例中,可每隔一段时间生成基线报告,例如生成基线日报及基线月报,基线报告中记录有该段时间所有新生成的SQL基线,以及变更过审核状态的SQL基线,方便数据库管理员了解审计数据库中SQL基线的变化。
在本实施例中,提取审核结果集中审核结果为不通过的SQL语句建立SQL基线,可方便数据库管理员对数据库中审核不通过的SQL语句进行整改,有效提高SQL审核工作的效率,帮助提升数据库的数据处理性能。
如图6所示,提供了一种SQL审核装置,包括获取模块610、提取模块620、解析模块630、审核模块640及生成模块650。
获取模块610,用于获取慢日志数据。
具体的,服务器可通过外部链接表的方式,从数据字典信息不完善的目标数据库中获取慢日志数据,例如、MySQL、Postgres等目标数据库,其中,慢日志数据指的是慢查询日志数据,在数据库中超过指定时间的SQL语句查询称为“慢查询”,慢日志数据记录有超过指定时间的SQL语句,以及日志时间、存储位置、执行时间、执行者编号等SQL语句执行时产生的相关数据。
提取模块620,用于从慢日志数据中提取待审核的SQL语句及与SQL语句匹配的基本信息。
具体的,可从获取的慢日志数据中提取待审核的SQL语句,以及审核SQL语句所需的与待审核的SQL语句匹配的基本信息,基本信息可根据预设的审核模板中的审核项目进行提取,基本信息可包括执行次数、执行总时间、执行操作、执行开销等。通过慢日志数据中提取待审核的SQL语句,相当于对SQL语句进行筛选,根据SQL语句的执行时间过滤性能好的SQL语句,超过指定时间的性能较差的SQL语句则进行审核。
如图7所示,在一个实施例中,提取模块620包括列表生成单元622及信息提取单元624。
列表生成单元622,用于根据预设格式分析慢日志数据,并生成慢日志数据列表。
具体的,可分析慢日志数据并按照预设格式提取慢日志数据中的数据,预设格式可根据实际需求进行设定,例如,预设格式可包括字段名、字段类型、字段内容,则提取慢日志数据中各个字段名,以及与字段名对应的字段类型及字段内容。可根据按照预设格式从慢日志数据提取的数据生成慢日志数据列表,慢日志数据列表的格式内容与预设格式及提取的数据对应,例如,慢日志数据列表可如表1所示,其中,log_time为日志时间,user_name为用户名,database_name为数据库名,userid为用户编号,calls为执行次数,total_time为执行总时间,可以理解地,慢日志数据列表中的内容及格式并不限于表1所示的内容及格式。
信息提取单元624,用于根据慢日志数据列表中的字段名从慢日志数据列表中提取待审核的SQL语句及与SQL语句匹配的基本信息。
具体的,可在慢日志数据列表中,提取字段名为query,即字段名为执行语句的字段内容作为待审核的SQL语句,并根据预设的审核模板中的审核项目,从慢日志数据列表中提取对应的与SQL语句匹配的基本信息,例如,预设的审核模板中的审核项目包括执行时间,则从慢日志数据列表中提取字段名为calls及total_time的字段内容作为与SQL语句匹配的基本信息。
解析模块630,用于识别并解析SQL语句,得到解析结果。
具体的,可对从慢日志数据中提取的SQL语句进行识别解析,得到可被审核模板识别的解析结果,在本实施例中,解析SQL语句后可得到SQL树形解析结果,方便按照审核模板中的审核项目对解析结果进行审核。
审核模块640,用于逐一按照预设的审核模板中的审核项目,对解析结果和/或基本信息进行审核,得到审核结果。
具体的,预设的审核模板可包括执行计划审核模板及SQL语法审核模板。执行计划审核模板是对SQL语句的执行计划进行审核,在数据库中,一个SQL语句表示想要得到的数据,但是并没有表示如何获取数据,例如,通过一个SQL语句,可以取出所有住在深圳的客户.当服务器中的数据库接收到的这条SQL的时候,通过计算会选择读取整个客户表还是利用索引进行获取数据,最终SQL语句被物理性执行的方法被称为执行计划。执行计划审核模板的审核项目可包括慢查询、高成本操作等。SQL语法审核模板是对SQL语句本身的语法语义进行审核,SQL语法审核模板的审核项目可包括禁止出现重复查询子句、禁止出现select*等。服务器可逐一按照预设的审核模板中的各个审核项目,对解析结果和/或基本信息进行审核,当不满足审核模板中的任一审核项目时,则审核不通过,当全部符合审核模板中的各个审核项目时,则审核通过。
生成模块650,用于根据审核结果生成审核结果集。
具体的,可对从慢日志数据中提取的多个SQL语句及与各个SQL语句匹配的基本信息进行审核,并根据审核结果生成审核结果集,审核结果集可包括审核的SQL语句的SQL编号、数据库名称、执行时间、命令类型、审核状态、违规项目等内容,并将审核结果集存储在审计数据库中,其中,审核状态表示审核结果,可用0、1等数字或其它的字母、符号等表示审核结果为不通过或是通过。
上述SQL审核装置,从慢日志数据中提取待审核的SQL语句及与SQL语句匹配的基本信息,并按照预设的审核模板中的审核项目,对解析SQL语句得到的解析结果及与SQL语句匹配的基本信息进行审核,通过挖掘分析慢日志数据,能够为数据字典信息不完善的数据库扩展出可进行SQL深度审核SQL语句及与SQL语句匹配的基本信息,使SQL审核更具有针对性,并有效提高了SQL审核的准确性。
在一个实施例中,审核模块640,还用于逐一按照执行计划审核模板中的审核项目,提取基本信息中与审核项目匹配的数据进行审核,得到审核结果。
具体的,预设的审核模板可包括执行计划审核模板及SQL语法审核模板,执行计划审核模板是对SQL语句的执行计划进行审核。执行计划审核模板中的审核项目可包括慢查询、高成本操作等项目,其中,慢查询的审核内容为判断SQL语句的执行时间是否大于预设的执行时间,例如,执行时间是否大于1s,高成本操作的审核内容为判断SQL语句中是否有高成本操作,例如,是否有Seq Scan、全表扫描等操作。执行计划审核模板的审核项目所审核的内容一般需要从与SQL语句匹配的基本信息中获取,例如,审核执行时间是否大于预设的执行时间,则需要从基本信息中获取执行次数及执行总时间,并求取平均值,即执行时间,审核高成本操作则需要获取基本信息中的执行操作。每个审核项目有唯一对应的审核项目编号,当审核不通过时,可记录不通过的审核项目编号。
和/或
审核模块640,还用于逐一按照SQL语法审核模板中的审核项目,对解析结果进行语法分析,并根据分析结果进行审核,得到审核结果。
具体的,SQL语法审核模板是对SQL语句本身的语法语义进行审核,SQL语法审核模板的审核项目可包括禁止使用select*、禁止出现重复查询子句、update禁止出现order by子句、update必须出现where子句、禁止嵌套select子句、delete必须出现where子句、delete禁止出现order by子句、delete禁止出现limit子句等。禁止出现重复查询子句的审核项目可提高SQL语句的执行效率,update禁止出现order by子句、delete禁止出现orderby子句及delete禁止出现limit子句的审核项目可防止DML过程出现不必要的排序,update必须出现where子句及delete必须出现where子句的审核项目可防止DML过程出现全表锁。可逐一根据SQL语法审核模板的各个审核项目对解析得到的SQL树形解析结果进行分析审核,并得到审核结果。
预设的审核模板中的各个审核项目可对应不同的审核数值,对审核的SQL语句进行评分。当审核项目不通过时,则将SQL语句的审核总数值扣除不通过的审核项目对应的审核数值,审核结束后,可得到最后的审核数值,通过对SQL语句进行评分可清晰地得到SQL语句的性能好坏程度。例如,执行计划审核模板中的慢查询及高成本操作分别对应的审核数据为1分、2分,SQL语句的审核总数值为100分,若SQL语句不符合慢查询的审核项目,则扣除一分,最后的审核数值为99分。
在本实施例中,可通过执行计划审核模板及SQL语法审核模板对解析SQL语句得到的解析结果和/或与SQL语句匹配的基本信息逐一进行审核,可对数据字典信息不完善的数据库中的SQL进行更深度的审核,使SQL审核更具有针对性,并有效提高了SQL审核的准确性。
如图8所示,在一个实施例中,上述SQL审核装置,除了包括获取模块610、提取模块620、解析模块630、审核模块640及生成模块650,还包括建立模块660及展示模块670。
建立模块660,用于提取审核结果集中审核结果为不通过的SQL语句建立SQL基线。
具体的,SQL基线用于记录审核结果为不通过的SQL语句的相关数据及状态的变化过程,SQL基线可包括SQL语句内容、SQL编号、数据库名称、用户名、审核不通过的审核项目编号、审核状态等,刚建立SQL基线时,审核状态为不通过,当数据库管理员对SQL语句进行整改后,审核状态可修改为通过。
如图9所示,在一个实施例中,建立模块660包括语句提取单元662、获取单元664及判断单元666。
语句提取单元662,用于提取审核结果集中审核结果为不通过的SQL语句。
获取单元664,用于获取审核结果为不通过的SQL语句的SQL编号及不通过的审核项目编号。
具体的,可提取审核结果集中审核结果为不通过的SQL语句建立SQL基线,可从审核结果集中获取审核结果为不通过的SQL语句的SQL语句内容、SQL编号、数据库名称、用户名、审核不通过的审核项目编号等信息。
判断单元666,用于根据SQL编号及不通过的审核项目编号判断是否存在匹配的SQL基线,若是,则将SQL基线的状态标记为不通过,若否,则根据SQL编号及不通过的审核项目编号建立SQL基线。
具体的,SQL语句每个不通过的审核项目可对应于唯一的SQL基线,即每个SQL基线有唯一对应的SQL编号及不通过的审核项目编号,若SQL语句不通过的审核项目有多个,则需建立多个对应的SQL基线。提取审核结果集中审核结果为不通过的SQL语句,并获取SQL编号及不通过的审核项目编号后,可先根据SQL编号查找审计数据库中是否有对应的SQL基线,若有,则再进一步从与SQL编号对应的SQL基线中,查找是否有与审核项目编号匹配的SQL基线,若有,则无需重新建立SQL基线,只需将匹配的SQL基线的审核状态修改为不通过。若没有与SQL编号及不通过的审核项目编号匹配的SQL基线,则根据SQL编号及不通过的审核项目编号在审计数据库中建立SQL基线,SQL基线中的审核状态标记为不通过。
展示模块670,用于分析SQL基线得到SQL审核数据,并展示SQL审核数据。
具体的,可每隔预设时间从审计数据库中提取预设时间内新建立的或是状态被重新标记为不通过SQL基线,得到SQL的审核数据,例如,每隔1小时、3小时等时间,SQL的审核数据可包括SQL语句内容、SQL编号、数据库名称、用户名、审核不通过的审核项目编号等内容,并通过终端进行展示。数据库管理员可根据展示的SQL审核数据对SQL语句进行整改,使其符合审核项目,整改完成后,可根据整改结果修改SQL基线的审核状态,若SQL语句审核不通过的审核项目已进行整改,可将与该整改的审核项目编号匹配的SQL基线的审核状态标记为通过。在其它的实施例中,可每隔一段时间生成基线报告,例如生成基线日报及基线月报,基线报告中记录有该段时间所有新生成的SQL基线,以及变更过审核状态的SQL基线,方便数据库管理员了解审计数据库中SQL基线的变化。
在本实施例中,提取审核结果集中审核结果为不通过的SQL语句建立SQL基线,可方便数据库管理员对数据库中审核不通过的SQL语句进行整改,有效提高SQL审核工作的效率,帮助提升数据库的数据处理性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种SQL审核方法,包括:
获取慢日志数据;
从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息;
识别并解析所述SQL语句,得到解析结果;
逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果;
根据所述审核结果生成审核结果集。
2.根据权利要求1所述的SQL审核方法,其特征在于,所述从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息,包括:
根据预设格式分析所述慢日志数据,并生成慢日志数据列表;
根据所述慢日志数据列表中的字段名从所述慢日志数据列表中提取待审核的SQL语句及与所述SQL语句匹配的基本信息。
3.根据权利要求1所述的SQL审核方法,其特征在于,所述预设的审核模板包括执行计划审核模板及SQL语法审核模板;
所述逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果,包括:
逐一按照所述执行计划审核模板中的审核项目,提取所述基本信息中与所述审核项目匹配的数据进行审核,得到审核结果;
和/或
逐一按照所述SQL语法审核模板中的审核项目,对所述解析结果进行语法分析,并根据分析结果进行审核,得到审核结果。
4.根据权利要求1至3任一所述的SQL审核方法,其特征在于,在所述根据所述审核结果生成审核结果集的步骤之后,还包括:
提取所述审核结果集中审核结果为不通过的SQL语句建立SQL基线;
分析所述SQL基线得到SQL审核数据,并展示所述SQL审核数据。
5.根据权利要求4所述的SQL审核方法,其特征在于,所述提取所述审核结果集中审核结果为不通过的SQL语句建立SQL基线,包括:
提取所述审核结果集中审核结果为不通过的SQL语句;
获取所述审核结果为不通过的SQL语句的SQL编号及不通过的审核项目编号;
根据所述SQL编号及不通过的审核项目编号判断是否存在匹配的SQL基线,若是,则将所述SQL基线的状态标记为不通过,若否,则根据所述SQL编号及不通过的审核项目编号建立SQL基线。
6.一种SQL审核装置,其特征在于,包括:
获取模块,用于获取慢日志数据;
提取模块,用于从所述慢日志数据中提取待审核的SQL语句及与所述SQL语句匹配的基本信息;
解析模块,用于识别并解析所述SQL语句,得到解析结果;
审核模块,用于逐一按照预设的审核模板中的审核项目,对所述解析结果和/或所述基本信息进行审核,得到审核结果;
生成模块,用于根据所述审核结果生成审核结果集。
7.根据权利要求6所述的SQL审核装置,其特征在于,所述提取模块,包括:
列表生成单元,用于根据预设格式分析所述慢日志数据,并生成慢日志数据列表;
信息提取单元,用于根据所述慢日志数据列表中的字段名从所述慢日志数据列表中提取待审核的SQL语句及与所述SQL语句匹配的基本信息。
8.根据权利要求6所述的SQL审核装置,其特征在于,所述预设的审核模板包括执行计划审核模板及SQL语法审核模板;
所述审核模块,还用于逐一按照所述执行计划审核模板中的审核项目,提取所述基本信息中与所述审核项目匹配的数据进行审核,得到审核结果;
和/或
逐一按照所述SQL语法审核模板中的审核项目,对所述解析结果进行语法分析,并根据分析结果进行审核,得到审核结果。
9.根据权利要求6至8任一所述的SQL审核装置,其特征在于,所述装置还包括:
建立模块,用于提取所述审核结果集中审核结果为不通过的SQL语句建立SQL基线;
展示模块,用于分析所述SQL基线得到SQL审核数据,并展示所述SQL审核数据。
10.根据权利要求9所述的SQL审核装置,其特征在于,所述建立模块,包括:
语句提取单元,用于提取所述审核结果集中审核结果为不通过的SQL语句;
获取单元,用于获取所述审核结果为不通过的SQL语句的SQL编号及不通过的审核项目编号;
判断单元,用于根据所述SQL编号及不通过的审核项目编号判断是否存在匹配的SQL基线,若是,则将所述SQL基线的状态标记为不通过,若否,则根据所述SQL编号及不通过的审核项目编号建立SQL基线。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860550.XA CN106980637B (zh) | 2016-09-28 | 2016-09-28 | Sql审核方法和装置 |
AU2017101864A AU2017101864A4 (en) | 2016-09-28 | 2017-05-09 | Method, device, server and storage apparatus of reviewing SQL |
PCT/CN2017/083645 WO2018058959A1 (zh) | 2016-09-28 | 2017-05-09 | Sql审核方法、装置、服务器及存储设备 |
US15/579,376 US10402402B2 (en) | 2016-09-28 | 2017-05-09 | Method, device, server and storage apparatus of reviewing SQL |
AU2017268630A AU2017268630A1 (en) | 2016-09-28 | 2017-05-09 | Method, device, server and storage apparatus of reviewing SQL |
EP17800997.3A EP3343411A4 (en) | 2016-09-28 | 2017-05-09 | SQL TEST PROCESS AND DEVICE, SERVER AND STORAGE DEVICE |
KR1020187015349A KR102230661B1 (ko) | 2016-09-28 | 2017-05-09 | Sql 검토 방법, 장치, 서버 및 저장 매체 |
JP2017565717A JP2018532171A (ja) | 2016-09-28 | 2017-05-09 | Sql審査方法、サーバ及び記憶デバイス |
TW106133232A TWI634449B (zh) | 2016-09-28 | 2017-09-27 | Sql審核方法和裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860550.XA CN106980637B (zh) | 2016-09-28 | 2016-09-28 | Sql审核方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106980637A true CN106980637A (zh) | 2017-07-25 |
CN106980637B CN106980637B (zh) | 2019-06-07 |
Family
ID=59340265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610860550.XA Active CN106980637B (zh) | 2016-09-28 | 2016-09-28 | Sql审核方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10402402B2 (zh) |
EP (1) | EP3343411A4 (zh) |
JP (1) | JP2018532171A (zh) |
KR (1) | KR102230661B1 (zh) |
CN (1) | CN106980637B (zh) |
AU (2) | AU2017268630A1 (zh) |
TW (1) | TWI634449B (zh) |
WO (1) | WO2018058959A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688626A (zh) * | 2017-08-18 | 2018-02-13 | 北京小度信息科技有限公司 | 慢查询日志处理方法、装置及电子设备 |
CN107766552A (zh) * | 2017-11-01 | 2018-03-06 | 搜易贷(北京)金融信息服务有限公司 | 一种mysql自动上线方法 |
CN108415991A (zh) * | 2018-02-12 | 2018-08-17 | 广州市贝聊信息科技有限公司 | 一种sql审核方法与系统 |
CN109284282A (zh) * | 2018-10-22 | 2019-01-29 | 北京极数云舟科技有限公司 | 一种基于MySQL数据库运维方法和系统 |
CN109408378A (zh) * | 2018-09-30 | 2019-03-01 | 福建星瑞格软件有限公司 | 一种在大数据量下快速定位sql解析错误的测试方法及系统 |
CN109710518A (zh) * | 2018-12-13 | 2019-05-03 | 中国联合网络通信集团有限公司 | 脚本审核方法及装置 |
CN110163603A (zh) * | 2019-04-18 | 2019-08-23 | 平安城市建设科技(深圳)有限公司 | 信息验证方法、装置、设备及可读存储介质 |
CN110413516A (zh) * | 2019-07-15 | 2019-11-05 | 杭州数梦工场科技有限公司 | 识别慢sql代码的方法及装置和电子设备 |
CN110716912A (zh) * | 2018-07-12 | 2020-01-21 | 马上消费金融股份有限公司 | 一种sql性能检测方法及服务器 |
CN111913937A (zh) * | 2020-07-31 | 2020-11-10 | 中国工商银行股份有限公司 | 数据库运维方法和装置 |
CN113590647A (zh) * | 2021-07-29 | 2021-11-02 | 中国联合网络通信集团有限公司 | Sql语句优化方法、装置、设备、存储介质及产品 |
CN113760945A (zh) * | 2020-08-11 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种审核sql语句的方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3738048A4 (en) * | 2018-01-09 | 2022-03-02 | Cleartrail Technologies Private Limited | RECOMMENDATION OF VISUAL AND EXECUTION TEMPLATES TO ENABLE AUTOMATION OF CONTROL AND DATA EXPLORATION ACROSS SYSTEMS |
CN111259040B (zh) * | 2020-02-19 | 2023-04-11 | 中国工商银行股份有限公司 | Sql语句审核方法和系统 |
CN113297245A (zh) * | 2020-05-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 获取执行信息的方法及装置 |
CN112181840B (zh) * | 2020-09-30 | 2023-09-26 | 深圳前海微众银行股份有限公司 | 一种数据库状态的确定方法及装置、设备、存储介质 |
CN114661751B (zh) * | 2022-03-22 | 2023-01-31 | 医渡云(北京)技术有限公司 | 基于sql知识库的数据生产方法、装置、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075256A (zh) * | 2007-06-08 | 2007-11-21 | 北京神舟航天软件技术有限公司 | 数据库实时审计分析系统及方法 |
US20080208923A1 (en) * | 2007-01-10 | 2008-08-28 | Satoru Watanabe | Method for verifying data consistency of backup system, program and storage medium |
CN102411633A (zh) * | 2011-12-27 | 2012-04-11 | 北京人大金仓信息技术股份有限公司 | 基于模板的数据库审计设置方法 |
CN103488797A (zh) * | 2013-10-14 | 2014-01-01 | 德讯科技股份有限公司 | 一种基于mysql数据库的sql信息采集审计系统 |
CN104391995A (zh) * | 2014-12-15 | 2015-03-04 | 北京趣拿软件科技有限公司 | 一种sql语句审核的方法、数据库运维的方法及系统 |
CN104537015A (zh) * | 2014-12-19 | 2015-04-22 | 电信科学技术第十研究所 | 一种日志分析的计算机实现的方法、计算机和系统 |
CN105653607A (zh) * | 2015-12-23 | 2016-06-08 | 北京奇虎科技有限公司 | Sql日志收集分析方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3779431B2 (ja) * | 1997-06-13 | 2006-05-31 | 富士通株式会社 | リレーショナルデータベース管理装置,中間リンクテーブル自動作成処理方法およびプログラム記憶媒体 |
JP2002342110A (ja) * | 2001-05-17 | 2002-11-29 | Fujitsu Ltd | プログラム解析装置及びそのプログラム並びにプログラム記録媒体 |
KR20030013656A (ko) * | 2001-08-08 | 2003-02-15 | 한국전자통신연구원 | 동적 질의어 튜닝 시스템 및 그 방법 |
JP2003263353A (ja) * | 2002-03-08 | 2003-09-19 | Hitachi Information Systems Ltd | 障害発生原因分析装置,障害発生原因分析方法,及び障害発生原因分析プログラム |
CN101196890B (zh) | 2006-12-08 | 2010-06-16 | 国际商业机器公司 | 聚合数据库运行时信息和分析应用性能的方法及装置 |
CN101021874B (zh) | 2007-03-21 | 2010-05-26 | 金蝶软件(中国)有限公司 | 一种对查询sql请求进行优化的方法及装置 |
US8903801B2 (en) * | 2007-09-14 | 2014-12-02 | Oracle International Corporation | Fully automated SQL tuning |
US20100153431A1 (en) * | 2008-12-11 | 2010-06-17 | Louis Burger | Alert triggered statistics collections |
US20140189526A1 (en) * | 2013-01-02 | 2014-07-03 | International Business Machines Corporation | Changing log file content generation |
JP6031597B2 (ja) * | 2013-04-26 | 2016-11-24 | 株式会社日立製作所 | 特定装置、特定方法、および特定プログラム |
CN104679646B (zh) | 2013-11-29 | 2018-02-06 | 阿里巴巴集团控股有限公司 | 一种用于检测sql代码缺陷的方法和装置 |
CN104965861B (zh) | 2015-06-03 | 2018-06-22 | 上海新炬网络信息技术股份有限公司 | 一种数据访问监控装置 |
US9811444B2 (en) * | 2015-08-04 | 2017-11-07 | Salesforce.Com, Inc. | Testing software enhancements in database applications |
CN105243147A (zh) | 2015-10-22 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种MySQL数据库慢查询日志的管理方法及系统 |
-
2016
- 2016-09-28 CN CN201610860550.XA patent/CN106980637B/zh active Active
-
2017
- 2017-05-09 WO PCT/CN2017/083645 patent/WO2018058959A1/zh active Application Filing
- 2017-05-09 JP JP2017565717A patent/JP2018532171A/ja active Pending
- 2017-05-09 US US15/579,376 patent/US10402402B2/en active Active
- 2017-05-09 AU AU2017268630A patent/AU2017268630A1/en active Pending
- 2017-05-09 KR KR1020187015349A patent/KR102230661B1/ko active IP Right Grant
- 2017-05-09 AU AU2017101864A patent/AU2017101864A4/en active Active
- 2017-05-09 EP EP17800997.3A patent/EP3343411A4/en not_active Withdrawn
- 2017-09-27 TW TW106133232A patent/TWI634449B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080208923A1 (en) * | 2007-01-10 | 2008-08-28 | Satoru Watanabe | Method for verifying data consistency of backup system, program and storage medium |
CN101075256A (zh) * | 2007-06-08 | 2007-11-21 | 北京神舟航天软件技术有限公司 | 数据库实时审计分析系统及方法 |
CN102411633A (zh) * | 2011-12-27 | 2012-04-11 | 北京人大金仓信息技术股份有限公司 | 基于模板的数据库审计设置方法 |
CN103488797A (zh) * | 2013-10-14 | 2014-01-01 | 德讯科技股份有限公司 | 一种基于mysql数据库的sql信息采集审计系统 |
CN104391995A (zh) * | 2014-12-15 | 2015-03-04 | 北京趣拿软件科技有限公司 | 一种sql语句审核的方法、数据库运维的方法及系统 |
CN104537015A (zh) * | 2014-12-19 | 2015-04-22 | 电信科学技术第十研究所 | 一种日志分析的计算机实现的方法、计算机和系统 |
CN105653607A (zh) * | 2015-12-23 | 2016-06-08 | 北京奇虎科技有限公司 | Sql日志收集分析方法及装置 |
Non-Patent Citations (2)
Title |
---|
何斌颖: "Oracel和SQL Server数据库安全基线审查", 《云南大学学报》 * |
软件开发技术联盟: "《MySQL自学视频教程》", 31 December 2014, 清华大学出版社 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688626A (zh) * | 2017-08-18 | 2018-02-13 | 北京小度信息科技有限公司 | 慢查询日志处理方法、装置及电子设备 |
CN107766552A (zh) * | 2017-11-01 | 2018-03-06 | 搜易贷(北京)金融信息服务有限公司 | 一种mysql自动上线方法 |
CN108415991A (zh) * | 2018-02-12 | 2018-08-17 | 广州市贝聊信息科技有限公司 | 一种sql审核方法与系统 |
CN110716912A (zh) * | 2018-07-12 | 2020-01-21 | 马上消费金融股份有限公司 | 一种sql性能检测方法及服务器 |
CN110716912B (zh) * | 2018-07-12 | 2021-09-28 | 马上消费金融股份有限公司 | 一种sql性能检测方法及服务器 |
CN109408378A (zh) * | 2018-09-30 | 2019-03-01 | 福建星瑞格软件有限公司 | 一种在大数据量下快速定位sql解析错误的测试方法及系统 |
CN109408378B (zh) * | 2018-09-30 | 2022-05-24 | 福建星瑞格软件有限公司 | 一种在大数据量下快速定位sql解析错误的测试方法及系统 |
CN109284282A (zh) * | 2018-10-22 | 2019-01-29 | 北京极数云舟科技有限公司 | 一种基于MySQL数据库运维方法和系统 |
CN109710518A (zh) * | 2018-12-13 | 2019-05-03 | 中国联合网络通信集团有限公司 | 脚本审核方法及装置 |
CN110163603A (zh) * | 2019-04-18 | 2019-08-23 | 平安城市建设科技(深圳)有限公司 | 信息验证方法、装置、设备及可读存储介质 |
CN110413516A (zh) * | 2019-07-15 | 2019-11-05 | 杭州数梦工场科技有限公司 | 识别慢sql代码的方法及装置和电子设备 |
CN110413516B (zh) * | 2019-07-15 | 2023-08-25 | 杭州数梦工场科技有限公司 | 识别慢sql代码的方法及装置和电子设备 |
CN111913937A (zh) * | 2020-07-31 | 2020-11-10 | 中国工商银行股份有限公司 | 数据库运维方法和装置 |
CN111913937B (zh) * | 2020-07-31 | 2024-03-08 | 中国工商银行股份有限公司 | 数据库运维方法和装置 |
CN113760945A (zh) * | 2020-08-11 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种审核sql语句的方法及装置 |
CN113590647A (zh) * | 2021-07-29 | 2021-11-02 | 中国联合网络通信集团有限公司 | Sql语句优化方法、装置、设备、存储介质及产品 |
CN113590647B (zh) * | 2021-07-29 | 2024-02-23 | 中国联合网络通信集团有限公司 | Sql语句优化方法、装置、设备、存储介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
TWI634449B (zh) | 2018-09-01 |
US10402402B2 (en) | 2019-09-03 |
KR102230661B1 (ko) | 2021-03-23 |
US20190228008A1 (en) | 2019-07-25 |
KR20190060725A (ko) | 2019-06-03 |
CN106980637B (zh) | 2019-06-07 |
TW201814565A (zh) | 2018-04-16 |
AU2017101864A4 (en) | 2019-11-14 |
AU2017268630A1 (en) | 2018-04-12 |
WO2018058959A1 (zh) | 2018-04-05 |
JP2018532171A (ja) | 2018-11-01 |
EP3343411A4 (en) | 2019-04-17 |
EP3343411A1 (en) | 2018-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980637A (zh) | Sql审核方法和装置 | |
CN106445795B (zh) | 一种数据库sql效率检测方法及装置 | |
KR101276602B1 (ko) | 표의문자적 내용을 가지는 데이터를 서치하고 매칭하기위한 시스템 및 방법 | |
US20200327172A1 (en) | System and method for processing contract documents | |
US7389306B2 (en) | System and method for processing semi-structured business data using selected template designs | |
CN103885934B (zh) | 一种专利文献关键短语自动提取方法 | |
CN104699611B (zh) | 一种基于开源软件缺陷代码修改模式的缺陷信息提取方法 | |
CN101878461B (zh) | 分析用于匹配数据记录的系统的方法和系统 | |
Kovbasistyi et al. | Method for detection of non-relevant and wrong information based on content analysis of web resources | |
CN105378731A (zh) | 从被回答问题关联语料库/语料值 | |
CN107992633A (zh) | 基于关键词特征的电子文档自动分类方法及系统 | |
CN105159715A (zh) | 一种基于抽象语法树节点变更抽取的Python代码变更提示方法 | |
CN104077407B (zh) | 一种智能数据搜索系统及方法 | |
CN110175585B (zh) | 一种简答题自动批改系统及方法 | |
US20110202545A1 (en) | Information extraction device and information extraction system | |
CN107943514A (zh) | 一种软件文档中核心代码元素的挖掘方法及系统 | |
CN105095436B (zh) | 数据源数据自动建模方法 | |
CN107797916A (zh) | Ddl语句审核方法和装置 | |
CN106528527A (zh) | 未登录词的识别方法及识别系统 | |
CN109344355A (zh) | 针对网页变化的自动回归检测与块匹配自适应方法和装置 | |
CN109101551A (zh) | 一种问答知识库的构建方法及装置 | |
Zuccala et al. | Metric assessments of books as families of works | |
CN103678287A (zh) | 一种关键词翻译统一的方法 | |
CN109783638A (zh) | 一种基于半监督学习的用户评论聚类方法 | |
Rauf et al. | Logical structure extraction from software requirements documents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1237933 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |