CN111831527A - 扫描数据库性能问题的方法、装置、电子设备、及介质 - Google Patents

扫描数据库性能问题的方法、装置、电子设备、及介质 Download PDF

Info

Publication number
CN111831527A
CN111831527A CN202010688558.9A CN202010688558A CN111831527A CN 111831527 A CN111831527 A CN 111831527A CN 202010688558 A CN202010688558 A CN 202010688558A CN 111831527 A CN111831527 A CN 111831527A
Authority
CN
China
Prior art keywords
scanning
database
rule set
type
template
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
Application number
CN202010688558.9A
Other languages
English (en)
Inventor
杨平改
何燕超
辛鑫
高文婷
王佳莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCB Finetech Co Ltd
Original Assignee
China Construction Bank Corp
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp, CCB Finetech Co Ltd filed Critical China Construction Bank Corp
Priority to CN202010688558.9A priority Critical patent/CN111831527A/zh
Publication of CN111831527A publication Critical patent/CN111831527A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例公开了一种扫描数据库性能问题的方法、装置、电子设备、及介质,方法包括:分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集;分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。能够针对性地自动发现测试过程中的问题,能够降低人工成本。

Description

扫描数据库性能问题的方法、装置、电子设备、及介质
技术领域
本公开实施例涉及数据库技术领域,具体涉及一种扫描数据库性能问题的方法、装置、电子设备、及介质。
背景技术
IT系统数据库的性能问题是影响系统稳定运行的关键,随着用户量和数据量的不断增加,对应用数据库的性能要求也越来越高,性能问题已成为各系统产生生产事件的原因之一。
传统的方式是在遇到问题时,由数据库管理员介入,数据库管理员往往采用手工查找的方式定位数据库的性能问题,一方面,这种方式存在滞后性,往往在产生问题后才能发现;另一方面,这种方式人工成本较高,分析效率低下。
发明内容
有鉴于此,本公开实施例提供一种扫描数据库性能问题的方法、装置、电子设备、及存储介质,以自动及时发现数据库的性能隐患。
本公开实施例的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开实施例的实践而习得。
在本公开的第一方面,本公开实施例提供了一种扫描数据库性能问题的方法,包括:
分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集;
分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;
接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
于一实施例中,对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取任一类型的数据库选定的扫描模板包含的多个扫描规则;对任一扫描规则,采用独立线程对对应类型的任一数据库进行扫描。
于一实施例中,对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取用户指定的扫描开始时间和扫描结束时间;对各类型的数据库中从所述扫描开始时间到所述扫描结束时间内的新增内容,采用选定的扫描模板进行扫描处理。
于一实施例中,对各类型的数据库采用选定的扫描模板进行扫描处理之后还包括:获取本次扫描处理得到的扫描结果,所述扫描结果包括N个数据库问题,其中N为大于或等于0的整数;将本次扫描结果所包括的N个数据库问题存储在数据库中,并将本次扫描结果和数据库中存储的历史扫描结果进行比对,以确定本次扫描结果中各数据库问题的首次被扫描出来的时间、以及最后一次被扫描出来的时间。
于一实施例中,分别获取各预定类型的数据库所对应的扫描规则集包括:对任一预定类型的数据库,添加至少一个基础扫描规则集和/或自定义扫描规则集。
于一实施例中,所述至少一个基础扫描规则集包括全表扫描规则集、SQL逻辑读高规则集、SQL物理读高规则集、冗余索引规则集、和/或索引规则集。
于一实施例中,所述预定类型的数据库包括oracle数据库和mysql数据库。
在本公开的第二方面,本公开实施例还提供了一种扫描数据库性能问题的装置,包括:
规则集获取单元,用于分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集;
扫描模板确定单元,用于分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;
扫描处理单元,用于接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
于一实施例中,所述扫描处理单元用于对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取任一类型的数据库选定的扫描模板包含的多个扫描规则;对任一扫描规则,采用独立线程对对应类型的任一数据库进行扫描。
于一实施例中,所述扫描处理单元用于对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取用户指定的扫描开始时间和扫描结束时间;对各类型的数据库中从所述扫描开始时间到所述扫描结束时间内的新增内容,采用选定的扫描模板进行扫描处理。
于一实施例中,所述装置还包括扫描结果存储单元,用于对各类型的数据库采用选定的扫描模板进行扫描处理之后:获取本次扫描处理得到的扫描结果,所述扫描结果包括N个数据库问题,其中N为大于或等于0的整数;将本次扫描结果所包括的N个数据库问题存储在数据库中,并将本次扫描结果和数据库中存储的历史扫描结果进行比对,以确定本次扫描结果中各数据库问题的首次被扫描出来的时间、以及最后一次被扫描出来的时间。
于一实施例中,所述规则集获取单元用于:对任一预定类型的数据库,添加至少一个基础扫描规则集和/或自定义扫描规则集。
于一实施例中,所述至少一个基础扫描规则集包括全表扫描规则集、SQL逻辑读高规则集、SQL物理读高规则集、冗余索引规则集、和/或索引规则集。
于一实施例中,所述预定类型的数据库包括oracle数据库和mysql数据库。
在本公开的第三方面,提供了一种电子设备。该电子设备包括:处理器;以及存储器,用于存储可执行指令,所述可执行指令在被所述处理器执行时使得所述电子设备执行第一方面中的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面中的方法。
本公开实施例提出的技术方案的有益技术效果是:
本公开实施例通过分别获取各预定类型的数据库所对应的扫描规则集,分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理,能够针对性地自动发现测试过程中的问题,能够降低人工成本。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对本公开实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本公开实施例中的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本公开实施例的内容和这些附图获得其他的附图。
图1是根据本公开实施例提供的一种扫描数据库性能问题的方法的流程示意图;
图2是根据本公开实施例提供的另一种扫描数据库性能问题的方法的流程示意图;
图3是根据本公开实施例提供的一种用于实现扫描数据库性能问题的方法的系统的结构示意图;
图4是根据本公开实施例提供的一种扫描数据库性能问题的装置的结构示意图;
图5是根据本公开实施例提供的另一种扫描数据库性能问题的装置的结构示意图;
图6示出了适于用来实现本公开实施例的电子设备的结构示意图。
具体实施方式
为使本公开实施例解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本公开实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本公开实施例中的一部分实施例,而不是全部的实施例。基于本公开实施例中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开实施例保护的范围。
需要说明的是,本公开实施例中术语“系统”和“网络”在本文中常被可互换使用。本公开实施例中提到的“和/或”是指包括一个或更多个相关所列项目的任何和所有组合。本公开的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
还需要说明是,本公开实施例中下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本公开实施例对此不作具体限制。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面结合附图并通过具体实施方式来进一步说明本公开实施例的技术方案。
图1示出了本公开实施例提供的一种扫描数据库性能问题的方法的流程示意图,本实施例可适用于扫描系统中的数据库问题的情况,该方法可以由配置于电子设备中的扫描数据库性能问题的装置来执行,如图1所示,本实施例所述的扫描数据库性能问题的方法包括:
在步骤S110中,分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集。
例如,可对对任一预定类型的数据库,添加至少一个基础扫描规则集和/或自定义扫描规则集。
例如,所述至少一个基础扫描规则集包括全表扫描规则集、SQL逻辑读高规则集、SQL物理读高规则集、冗余索引规则集、和/或索引规则集。
其中,所述预定类型的数据库包括任意数据库,包括但不限于oracle数据库和mysql数据库等。
在步骤S120中,分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板。
在步骤S130中,接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
其中,对各类型的数据库采用选定的扫描模板进行扫描处理可采用多种方法,例如,可获取任一类型的数据库选定的扫描模板包含的多个扫描规则;对任一扫描规则,采用独立线程对对应类型的任一数据库进行扫描。
进一步地,为了精确定位性能问题的产生时间,在对各类型的数据库采用选定的扫描模板进行扫描处理时,还可获取用户指定的扫描开始时间和扫描结束时间;对各类型的数据库中从所述扫描开始时间到所述扫描结束时间内的新增内容,采用选定的扫描模板进行扫描处理,以精确地定位到该设定时间段内的数据库性能问题,提高扫描效率。
在步骤S130之后,还可获取本次扫描处理得到的扫描结果,所述扫描结果包括N个数据库问题;将本次扫描结果所包括的N个数据库问题存储在数据库中,并将本次扫描结果和数据库中存储的历史扫描结果进行比对,以确定本次扫描结果中各数据库问题的首次被扫描出来的时间、以及最后一次被扫描出来的时间,其中N为大于或等于0的整数。
本实施例通过分别获取各预定类型的数据库所对应的扫描规则集,分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理,能够针对性地发现测试过程中的问题,可以大大减轻在开发测试过程中遇到问题时进行人工分析的工作量,同时能对问题提前预防和分析,减少生产事件的发生率。
图2示出了本公开实施例提供的另一种扫描数据库性能问题的方法的流程示意图,本实施例在前述实施例的基础之上,以同时支持对Oracle和mysql数据库性能问题进行扫描为例说明本实施例的具体技术方案。如图2所示,本实施例所述的扫描数据库性能问题的方法包括:
步骤100:添加数据库扫描规则。
步骤100包括以下两个子步骤:步骤110和步骤120。
步骤110:添加系统基础规则集。
基础规则集为本系统默认添加的针对oracle和mysql数据库扫描核心问题的规则,对所有系统的数据库扫描具有普适性。基础规则集中定义的规则为所有系统所普遍关注的重点问题规则,比如全表扫描、SQL逻辑读高,冗余索引等等
该步骤又包括两个子步骤:步骤111和步骤112:
由于oracle数据库与mysql数据库所取规则的方式与库表不同,oracle规则与mysql规则需分别添加。
步骤111:添加Oracle数据库基础规则集到系统。
例如,基础规则集可包括动态规则集和静态规则集,动态规则集主要用于发现数据库中动态执行的SQL的相关问题,如全表扫描,SQL逻辑读高,SQL物理读高等;静态问题主要用于oracle数据库静态的表、索引等问题,如冗余索引,索引,外键字段上必须创建索引,大表需分区分片,未使用绑定变量等。
以oracle为例,动态信息主要取自于如下视图,包括:
dba_hist_sql_plan,dba_segments,dba_hist_sql_stat,dba_hist_active_sess_hist ory,dba_hist_snapshot,v$sqlarea,v$sql等,静态信息主要取自于dba_ind_columns,dba_tables,dba_segments,dba_subpart_key_columns,dba_part_tables等视图。
步骤112:添加Mysql数据库基础规则集到系统。
类似于oracle规则,mysql基础规则集也包括动态规则集和静态规则集,区别在于所取数据的方式不同,mysql动态规则主要取自于mysql自带的performance_schema数据库的events_statements_summary_by_digest表,静态规则主要取自于mysql自带的information_schema的statistics,file_summary_by_instance,columns,table_constrains等表。
步骤120:添加自定义规则
除了基础规则外,使用该系统的用户还可以定制自己的规则,以便扫描针对用户系统专有的扫描策略。
该步骤又包括两个子步骤:
步骤121:添加自定义Oracle数据库扫描规则。
如果用户扫描的为oracle数据库,并且需要添加自己的专有的扫描策略,只需要将自定义规则添加至系统。
步骤122:添加自定义mysql数据库扫描规则。
如果用户扫描的为mysql数据库,并且需要添加自己的专有的扫描策略,将自定义规则添加至扫描系统。
需要说明的是,步骤100的添加规则,都可以设定规则的优先级,在后续步骤500中扫描结果呈现和导出时,可以根据规则优先级进行呈现和结果筛选、导出,便于重点问题重点分析。
步骤200:添加数据库扫描模板。
模板为所定义的全部或部分规则集;为用户所需要扫描系统哪些问题的规则集。Oracle数据库需定义oracle规则集的模板,mysql数据库需定义mysql数据库规则集的模板;模板可定义一个或者多个。例如,一个数据库可能只想扫描其中的静态问题,则可定义一个模板,其中只包括静态规则的集合;相反如果一个数据库只想扫描动态问题(如性能测试中,用户只想关注所执行的sql是否存在问题),则定义动态模板,其中为动态规则的集合。也可定义部分动态规则和静态规则组成的模板或者用户自定义规则集所组成的模板。
步骤300:创建扫描任务。
该步骤为后台扫描的关键步骤,将所需扫描的数据库相关信息给后台数据库做扫描。该步骤包括以下几个子步骤:
步骤310:添加数据库。
将所需扫描的数据库连接串信息,用户名,密码给到后台数据库扫描系统。其中,在该步骤中可以选择扫描用户/schema。通常一个待扫描的数据库中有多个用户/schema,有一些用户/schema并不是该应用的用户/schema或者该应用不关注的,为了避免其它用户扫描出来的问题造成干扰,该步骤中可以选择对哪些特定/schema进行扫描。
步骤320:选择扫描模板。
选择步骤200中创建的模板进行扫描,以便发现指定规则下的特定问题。若为oracle数据库,系统会根据数据库类型列出oracle数据库所有可以使用的模板,mysql数据库只会列出mysql数据库可使用的模板,在系统使用上,oracle数据库扫描和mysql数据库扫描对用户是透明的,用户无需关注系统细节,只要选定模板,后台会自动对不同数据库进行不同的扫描处理。
步骤330:定义扫描时间。
该步骤定义扫描的开始时间和结束时间,在该时间范围内执行扫描,发现该时间段内的数据库问题。比如用户可能在某天到某天执行测试,希望发现这个时间范围内的数据库问题,便可通过这种方式执行扫描。优点是可以针对性的发现测试过程中的问题,测试结束后系统结束扫描以便减轻系统对多个库长期扫描的压力。
步骤400后台系统执行扫描。
该步骤为本oracle和mysql数据库问题诊断方法的核心。后台系统执行扫描时,对oracle和mysql的静态问题和动态问题分别执行不同的问题采集频次,系统提供默认的采集频次,系统管理员可按照需要进行配置。对oracle和mysql的静态问题,如表、索引问题,因为静态的结果一般变化频率不大,所以才用1天采集一次信息的扫描频率;而动态问题一般变化较大,用户可能想较实时的看到存在的问题,因此采用分钟级别的采集频率,且可配置化。
该步骤包括以下几个子步骤:步骤410、步骤420、步骤430和步骤440。
步骤410:选取任务执行列表。
本方法会将所需扫描的数据库信息,扫描的开始时间、结束时间,扫描模板等信息存入到数据库,并按照采集频次设定下一次执行时间。
通过定时调度的方式,从扫描任务列表中取出下一次执行时间小于当前时间的数据库列表进行调度扫描(后续步骤),并按照数据库类型和规则类型(动态、静态)的调度频率,设定下一次调度的时间。
除此之外,用户对某次扫描可能想快速看到结果,本方法提供了一种优先调度的方式,可以将某个扫描任务的执行时间优先调度。用户可通过界面的方式进行优先调度,后台逻辑通过设定下次执行时间来达到优先调度的目的。
步骤420:多线程任务调度。
预先设定系统每次的任务调度数量上限,从该上限和步骤410的任务执行列表长度中取小值,为本次任务调度的个数,启动多线程进行任务调度,每个任务(对应每个需要扫描的数据库)启动一个线程。已启动的任务状态标记为running状态,未启动的等待过程中的任务标记为waiting状态,已经停止的任务标记为stopped状态。本发明提出的该调度方法使得其具有灵活的横向可扩展能力,在系统任务较多,系统压力较大的,只需要增加横向部署单元,无需其他扫描便可扩展系统的并发处理能力。
步骤430:规则扫描。
在步骤420的每一个任务线程中,通过该任务数据库所选择的扫描模板,查找到该模板对应的规则,每个规则启动一个子线程,执行该规则,到所扫描的数据库中取出命中该规则问题的数据,提取,并将数据的相应字段存储到本数据库性能问题诊断装置的数据库中。由于oracle和mysql数据库不同,且一般静态规则和动态规则用户所关注的问题的字段不同,本步骤中提供四个扫描采集引擎:oracle动态规则采集引擎,oracle静态规则采集引擎,mysql动态规则采集引擎和mysql静态规则采集引擎,分别对应oracle和mysql的动态和静态规则问题扫描。
扫描引擎调用规则,连接预扫描的数据库,通过规则SQL读取有用信息。规则定义时对需扫描的用户进行统一标记处理,比如统一标记为SQL_AUDIT_USERS;在执行规则时,需要对规则进行预处理,将SQL_AUDIT_USERS处理为本库所需扫描的用户。
步骤440:数据整理。
经扫描后的数据,除了所扫描问题的核心数据,如SQL id,sql文本,cpu响应时间,表名,索引名等,为了问题方便展现于前台页面,还需要存储扫描任务,数据库名等信息,在采集扫描出数据后,后台需要进行数据整理,汇总,问题去重等步骤。
另外,对于同一个数据库,在不同的上线版本,可能会建不同的扫描任务,为了能对每次任务所扫描的结果进行对比分析,同时对本次任务的问题有针对性的分析,本发明还提供了对问题进行问题类型标记的方法,用以区分本次扫描新增问题与非本次扫描新增问题的方法:对于每一个特定问题,存储时在数据库中标记其首次被扫描出来的时间first_seen以及最近一次被扫描出来的时间last_seen,若first_seen在本次任务的扫描时间范围内,则是本版本新出现的问题,否则为非本次版本新增问题。对于本次新出现问题,分析时需要特别关注,该标记方法对于数据库问题分析人员进行分析时提供了方便和简化。
除此之外,本发明提供了分析人员对问题进行分析的记录追踪,有些扫描出来的问题经过分析对系统的影响,可能暂时不需要修复的,或者需要延期修复以及已经修复的,分析人员都可以对问题进行标记,并对问题的分析记录在数据库中,在后面的扫描任务中,如果再扫描到相同的问题,分析人员可以直接看到以前的分析结果,对于扫描出来数据库问题集较大的,减少再次分析相同问题的工作量。
步骤500扫描结果呈现、导出、导入。
经过步骤400,扫描结束后,从所扫描的数据库中取出的问题相关记录已存储在数据库中。本步骤是将数据库中的结果以不同纬度的形式展现及导出,包括步骤510和步骤520。
步骤510:扫描结果页面展示。将扫描结果以可读、易读易分析的形式展现于节目,有以下三种展现方式。
步骤511:多版本纬度问题展示。
对同一个系统的数据库,可能有多个上线版本,比如3月、4月、5月分别有一次上线版本,每一个版本都进行了一次数据库版本的扫描,对各版本所发现的问题趋势进行统计和展现,比如扫描问题总数趋势、各规则问题数趋势,可以直观的看到每个版本的问题,了解每个版本的数据库纬度的质量。
步骤512:单版本问题规则纬度展示。
该纬度的问题展示用于展示特定版本的扫描中,每个规则命中问题的数量,比如全表扫描问题为20个,冗余索引问题1个,可直观的看到本次扫描问题分析需重点关注的命中规则,同时由于每个规则在步骤100中定义了优先级,该优先级也会展示在页面中,对于优先级高的命中问题也较多的问题,可以直观的展现;每个规则命中的问题提供链接可以查看问题的详情,对分析者对重点问题优先分析提供了途径。
步骤513:单版本问题数据库纬度展示。
同一个扫描任务可能会关注多个数据库,本系统支持多个数据库添加到同一个扫描任务中。数据库纬度的问题展示提供了对不同数据库,不同用户问题纬度的展示,并提供了链接展示不同库不同用户问题的明细;同步骤512,该方法对数据库问题分析者对重点库重点用户的关注提供了极大的便利。
步骤520:扫描结果导出。
为便于数据库问题分析者对所扫描出的问题进行线下分析,本发明提供了扫描结果明细导出的方法,便于用户使用,提供了单扫描任务结果导出以及多扫描任务导出的灵活方式。
步骤521:单扫描任务结果导出。用户选择单一扫描任务结果导出,系统将该导出记录保存到数据库,并存储所导出任务的关键信息于数据库中,关键信息包括数据库,扫描开始时间、结束时间,导出任务状态,导出任务的类型等。
步骤522:多扫描任务结果导出。用户选择多个扫描任务导出,系统将多个任务的导出记录列表存储到数据库中,同步骤521,记录关键信息到系统数据库。
步骤523:后台计算结果。后台根据步骤521和522的关键信息,取出扫描任务所命中问题的明细,同时将附加信息(是否为本次扫描新出现的问题,是否已对问题进行分析,分析结果等)写入到excel,将下载链接提供给前端,供用户下载。
步骤530:分析结果导入。
本发明提供一种用户对问题进行分析导入的方法,以便相同问题在后续出现时无需再重复分析,节省分析问题的时间和人力成本,提高分析效率。用户只需按照步骤520种导出的文件,分析时填写文件,之后使用系统的导入功能,导入功能会将excel文件中的问题与系统中的问题进行一对一匹配,匹配成功后将用户的分析反馈结果存储于数据库中。
为实现该性能问题扫描方法,本发明还提供了一种实现该方法的系统,其主要结构图如图3所示。包括前台应用,后台应用及数据库三部分组成。
其中前台的规则模块、模板模块配合后台的规则模板模块实现步骤100和步骤200,前台的数据库管理模块和扫描任务管理模块配合后台的数据库管理模块和扫描任务管理模块实现步骤300;后台的采集任务调度引擎及oracle和mysql数据库动静态规则采集引擎实现步骤400;前台的扫描结果展示模块和扫描结果导出、导入模块配合后台结果展示模块,扫描结果导出、导入模块实现步骤500。
本实施例的技术方案能够同时支持oracle和mysql数据库扫描,使用上对用户透明,支持规则灵活添加和修改,支持规则优先级定制,灵活定制模板,可对不同数据库环境扫描采用不同的模板,针对性的发现扫描问题,支持时间段定制扫描,支持特定用户扫描,支持对本版本新增问题和非新增问题类型的追踪,可配置的扫描执行频率,支持不同纬度的数据库扫描结果展示,为重点问题重点分析提供依据,支持单扫描任务、多扫描任务导出,支持问题分析导入,避免问题重复分析。
作为上述各图所示方法的实现,本申请提供了一种扫描数据库性能问题的装置的一个实施例,图4示出了本实施例提供的一种扫描数据库性能问题的装置的结构示意图,该装置实施例与图1至图3所示的方法实施例和系统实施例相对应,该装置具体可以应用于各种电子设备中。如图4所示,本实施例所述的扫描数据库性能问题的装置包括规则集获取单元410、扫描模板确定单元420和扫描处理单元430。
所述规则集获取单元410被配置为,用于分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集。
所述扫描模板确定单元420被配置为,用于分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板。
所述扫描处理单元430被配置为,用于接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
根据本公开的一个或多个实施例,所述扫描处理单元430被配置为,用于对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取任一类型的数据库选定的扫描模板包含的多个扫描规则;对任一扫描规则,采用独立线程对对应类型的任一数据库进行扫描。
根据本公开的一个或多个实施例,所述扫描处理单元430被配置为,用于对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取用户指定的扫描开始时间和扫描结束时间;对各类型的数据库中从所述扫描开始时间到所述扫描结束时间内的新增内容,采用选定的扫描模板进行扫描处理。
根据本公开的一个或多个实施例,所述规则集获取单元410被配置为,用于:对任一预定类型的数据库,添加至少一个基础扫描规则集和/或自定义扫描规则集。
根据本公开的一个或多个实施例,所述至少一个基础扫描规则集包括全表扫描规则集、SQL逻辑读高规则集、SQL物理读高规则集、冗余索引规则集、和/或索引规则集。
根据本公开的一个或多个实施例,所述预定类型的数据库包括oracle数据库和mysql数据库。
本实施例提供的扫描数据库性能问题的装置可执行本公开方法实施例所提供的扫描数据库性能问题的方法,具备执行方法相应的功能模块和有益效果。
图5示出了本公开实施例提供的另一种扫描数据库性能问题的装置的结构示意图,如图5所示,本实施例所述的扫描数据库性能问题的装置包括:规则集获取单元510、扫描模板确定单元520、扫描处理单元530和扫描结果存储单元540。
所述规则集获取单元510被配置为,用于分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集。
所述扫描模板确定单元520被配置为,用于分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板。
所述扫描处理单元530被配置为,用于接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
所述扫描结果存储单元540被配置为,用于获取本次扫描处理得到的扫描结果,所述扫描结果包括N个数据库问题,其中N为大于或等于0的整数;将本次扫描结果所包括的N个数据库问题存储在数据库中,并将本次扫描结果和数据库中存储的历史扫描结果进行比对,以确定本次扫描结果中各数据库问题的首次被扫描出来的时间、以及最后一次被扫描出来的时间。
根据本公开的一个或多个实施例,所述扫描处理单元530被配置为,用于对各类型的数据库采用选定的扫描模板进行扫描处理包括:
获取任一类型的数据库选定的扫描模板包含的多个扫描规则;
对任一扫描规则,采用独立线程对对应类型的任一数据库进行扫描。
根据本公开的一个或多个实施例,所述扫描处理单元530被配置为,用于对各类型的数据库采用选定的扫描模板进行扫描处理包括:获取用户指定的扫描开始时间和扫描结束时间;对各类型的数据库中从所述扫描开始时间到所述扫描结束时间内的新增内容,采用选定的扫描模板进行扫描处理。
根据本公开的一个或多个实施例,所述规则集获取单元510被配置为,用于:对任一预定类型的数据库,添加至少一个基础扫描规则集和/或自定义扫描规则集。
根据本公开的一个或多个实施例,所述至少一个基础扫描规则集包括全表扫描规则集、SQL逻辑读高规则集、SQL物理读高规则集、冗余索引规则集、和/或索引规则集。
根据本公开的一个或多个实施例,所述预定类型的数据库包括oracle数据库和mysql数据库。
本实施例提供的扫描数据库性能问题的装置可执行本公开方法实施例所提供的扫描数据库性能问题的方法,具备执行方法相应的功能模块和有益效果。
下面参考图6,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开实施例的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开实施例的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集;分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开实施例各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
以上描述仅为本公开实施例的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种扫描数据库性能问题的方法,其特征在于,包括:
分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集;
分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;
接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
2.根据权利要求1所述的方法,其特征在于,对各类型的数据库采用选定的扫描模板进行扫描处理包括:
获取任一类型的数据库选定的扫描模板包含的多个扫描规则;
对任一扫描规则,采用独立线程对对应类型的任一数据库进行扫描。
3.根据权利要求1所述的方法,其特征在于,对各类型的数据库采用选定的扫描模板进行扫描处理包括:
获取用户指定的扫描开始时间和扫描结束时间;
对各类型的数据库中从所述扫描开始时间到所述扫描结束时间内的新增内容,采用选定的扫描模板进行扫描处理。
4.根据权利要求1所述的方法,其特征在于,对各类型的数据库采用选定的扫描模板进行扫描处理之后还包括:
获取本次扫描处理得到的扫描结果,所述扫描结果包括N个数据库问题,其中N为大于或等于0的整数;
将本次扫描结果所包括的N个数据库问题存储在数据库中,并将本次扫描结果和数据库中存储的历史扫描结果进行比对,以确定本次扫描结果中各数据库问题的首次被扫描出来的时间、以及最后一次被扫描出来的时间。
5.根据权利要求1所述的方法,其特征在于,分别获取各预定类型的数据库所对应的扫描规则集包括:
对任一预定类型的数据库,添加至少一个基础扫描规则集和/或自定义扫描规则集。
6.根据权利要求5所述的方法,其特征在于,所述至少一个基础扫描规则集包括全表扫描规则集、SQL逻辑读高规则集、SQL物理读高规则集、冗余索引规则集、和/或索引规则集。
7.根据权利要求1所述的方法,其特征在于,所述预定类型的数据库包括oracle数据库和mysql数据库。
8.一种扫描数据库性能问题的装置,其特征在于,
规则集获取单元,用于分别获取各预定类型的数据库所对应的扫描规则集,以得到多个预定类型的数据库对应的多个扫描规则集;
扫描模板确定单元,用于分别根据用户需扫描的任一预定类型的数据库对应的任一系统问题,从该预定类型的数据库对应的扫描规则集中确定子规则集,作为该预定类型的数据库对应的该系统问题所对应的扫描模板;
扫描处理单元,用于接收用户针对当前系统问题为各预定类型的数据库选定的扫描模板后,对各类型的数据库采用选定的扫描模板进行扫描处理。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储可执行指令,所述可执行指令在被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
CN202010688558.9A 2020-07-16 2020-07-16 扫描数据库性能问题的方法、装置、电子设备、及介质 Pending CN111831527A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010688558.9A CN111831527A (zh) 2020-07-16 2020-07-16 扫描数据库性能问题的方法、装置、电子设备、及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010688558.9A CN111831527A (zh) 2020-07-16 2020-07-16 扫描数据库性能问题的方法、装置、电子设备、及介质

Publications (1)

Publication Number Publication Date
CN111831527A true CN111831527A (zh) 2020-10-27

Family

ID=72924326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010688558.9A Pending CN111831527A (zh) 2020-07-16 2020-07-16 扫描数据库性能问题的方法、装置、电子设备、及介质

Country Status (1)

Country Link
CN (1) CN111831527A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434382A (zh) * 2021-07-12 2021-09-24 建信金融科技有限责任公司 数据库性能监控方法、装置、电子设备及计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530565A (zh) * 2013-10-21 2014-01-22 北京锐安科技有限公司 基于web的网站程序漏洞扫描方法及扫描装置
CN103530564A (zh) * 2013-09-24 2014-01-22 国家电网公司 一种sql注入漏洞测试与验证方法及系统
US20180173735A1 (en) * 2016-12-15 2018-06-21 International Business Machines Corporation System and method for dynamically estimating data classification job progress and execution time
CN111414351A (zh) * 2020-03-20 2020-07-14 中国建设银行股份有限公司 一种MySQL数据库的性能诊断方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530564A (zh) * 2013-09-24 2014-01-22 国家电网公司 一种sql注入漏洞测试与验证方法及系统
CN103530565A (zh) * 2013-10-21 2014-01-22 北京锐安科技有限公司 基于web的网站程序漏洞扫描方法及扫描装置
US20180173735A1 (en) * 2016-12-15 2018-06-21 International Business Machines Corporation System and method for dynamically estimating data classification job progress and execution time
CN111414351A (zh) * 2020-03-20 2020-07-14 中国建设银行股份有限公司 一种MySQL数据库的性能诊断方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434382A (zh) * 2021-07-12 2021-09-24 建信金融科技有限责任公司 数据库性能监控方法、装置、电子设备及计算机可读介质

Similar Documents

Publication Publication Date Title
US20200328952A1 (en) Distributed Tracing for Application Performance Monitoring
CN110262807B (zh) 集群创建进度日志采集系统、方法和装置
US9910870B2 (en) System and method for creating data models from complex raw log files
US10402310B1 (en) Systems and methods for reducing storage required for code coverage results
US9229845B1 (en) Testing using production data in scalable pre-production environments
CN110334109B (zh) 关系式数据库数据查询方法、系统、介质和电子设备
KR20060045965A (ko) 최선의 실행들을 데이터베이스 설계에 통합하기 위한 방법및 시스템
US11526413B2 (en) Distributed tracing of huge spans for application and dependent application performance monitoring
CN111352903A (zh) 日志管理平台、日志管理方法、介质以及电子设备
US10713070B2 (en) Systems and methods for capturing and visualizing user interactions across devices
US20220300534A1 (en) Data processing method, data querying method, and server device
US11676345B1 (en) Automated adaptive workflows in an extended reality environment
CN111831527A (zh) 扫描数据库性能问题的方法、装置、电子设备、及介质
CN108694172B (zh) 信息输出方法和装置
CN112861182A (zh) 数据库的查询方法、系统及计算机设备、存储介质
US10942732B1 (en) Integration test framework
CN113641567B (zh) 一种数据库巡检方法、装置、电子设备及存储介质
CN115033634A (zh) 数据采集方法、装置、电子设备和介质
CN112100159A (zh) 数据处理方法、装置、电子设备和计算机可读介质
CN113762702A (zh) 工作流部署方法、装置、计算机系统和可读存储介质
CN113010208A (zh) 一种版本信息的生成方法、装置、设备及存储介质
CN112380476A (zh) 信息显示方法、装置和电子设备
CN112784195A (zh) 一种页面数据发布方法和系统
CN114428823B (zh) 基于多维变量表达式的数据联动方法、装置、设备和介质
US11586802B2 (en) Parameterized states for customized views of resources

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
TA01 Transfer of patent application right

Effective date of registration: 20220921

Address after: 12 / F, 15 / F, 99 Yincheng Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 200120

Applicant after: Jianxin Financial Science and Technology Co.,Ltd.

Address before: 25 Financial Street, Xicheng District, Beijing 100033

Applicant before: CHINA CONSTRUCTION BANK Corp.

Applicant before: Jianxin Financial Science and Technology Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20201027

RJ01 Rejection of invention patent application after publication