CN108460079A - 数据库监控方法、装置、终端设备及存储介质 - Google Patents
数据库监控方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN108460079A CN108460079A CN201810014421.8A CN201810014421A CN108460079A CN 108460079 A CN108460079 A CN 108460079A CN 201810014421 A CN201810014421 A CN 201810014421A CN 108460079 A CN108460079 A CN 108460079A
- Authority
- CN
- China
- Prior art keywords
- data
- scan
- database
- sql
- instruction
- 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
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/21—Design, administration or maintenance of databases
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据库监控方法、装置、终端设备及存储介质。该数据库监控方法包括:在SQL数据库中创建临时表;获取本地服务器发送的数据扫描指令;基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,并将所述数据扫描结果存储在所述临时表中;获取本地服务器发送的数据监控指令,所述数据监控指令包括当前时间和监控时长;从所述临时表中获取所述监控时段内的数据扫描结果作为目标数据,将所述目标数据发送给所述本地服务器。该数据库监控方法能够对数据库中存储时效较短的数据进行长久保存并予以监控,基于监控结果提高数据库系统的性能。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种数据库监控方法、装置、终端设备及存储介质。
背景技术
全表扫描和隐式转换是SQL数据库中用于查询数据的两种方式,其中,全表扫描是数据库服务器用来搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止,一般用于对无索引的表进行查询。隐式转换是直接将一种数据类型赋值给另外一个数据类型。在SQL数据库中查询数据时,通常需要采用SQL指令进行查询,该SQL(Structured QueryLanguage结构化查询语言)指令执行过程中会产生SQL执行计划,SQL指令和相应的SQL执行计划缓存于SQL数据库的性能表v$sql和性能表v$sql_plan中,可以通过查看性能表v$sql和性能表v$sql_plan中的SQL指令和相应的SQL执行计划来初步预测SQL数据库性能。全表扫描和隐式转换均会对SQL数据库性能产生严重影响,通过性能表v$sql和性能表v$sql_plan中的SQL指令和相应的SQL执行计划可以初步预测SQL性能,但是SQL指令和相应的SQL执行计划在性能表v$sql和性能表v$sql_plan中缓存超过一天时将会被自动删除,无法实现长期监控。
发明内容
本发明实施例提供一种数据库监控方法、装置、终端设备及存储介质,以解决对数据库中存储时效超过一天的数据无法进行监控的问题。
第一方面,本发明实施例提供一种数据库监控方法,包括:
在SQL数据库中创建临时表;
获取本地服务器发送的数据扫描指令;
基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,并将所述数据扫描结果存储在所述临时表中;
获取本地服务器发送的数据监控指令,所述数据监控指令包括监控时段;
从所述临时表中获取所述监控时段内的数据扫描结果作为目标数据,将所述目标数据发送给所述本地服务器。
第二方面,本发明实施例提供一种数据库监控装置,包括:
临时表创建模块,用于在SQL数据库中创建临时表;
数据扫描指令获取模块,用于获取本地服务器发送的数据扫描指令;
数据扫描结果获取和存储模块,用于基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,并将所述数据扫描结果存储在所述临时表中;
数据监控指令获取模块,用于获取本地服务器发送的数据监控指令,所述数据监控指令包括监控时段;
目标数据发送模块,用于从所述临时表中获取所述监控时段内的数据作为目标数据,将所述目标数据发送给所述本地服务器。
第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述数据库监控方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述数据库监控方法的步骤。
本发明实施例提供的数据库监控方法、装置、终端设备及存储介质中,首先在SQL数据库中创建临时表,通过在SQL数据库中创建临时表,以存储SQL数据库对应的性能表中缓存不能超过一天的数据。具体地,在获取本地服务器发送的数据扫描指令后,基于该数据扫描指令,从SQL数据库中获取对应的数据扫描结果,并将数据扫描结果存储在临时表中,以存储性能表v$sql中的SQL指令和性能表v$sql_plan中相应的SQL执行计划。再获取本地服务器发送的数据监控指令,该数据监控指令包括监控时段,从临时表中获取监控时段内的数据扫描结果作为目标数据,将该目标数据发送给本地服务器,以实现对SQL数据库中存储时效较短的数据的监控和保存,提高数据库的性能。该数据库监控方法可对缓存在SQL数据库性能表v$sql和性能表v$sql_plan中超过一天的相关数据进行监控,实现对数据库的长期监控。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中数据库监控方法的一流程图。
图2是本发明实施例1中数据库监控方法中一个具体实施方式的一流程图。
图3是本发明实施例2中数据库监控装置的一原理框图。
图4是本发明实施例4中终端设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出本实施例中数据库监控方法的流程图。该数据库监控方法应用在安装有数据库的终端设备中,用于对数据进行监控,提高数据库系统性能。如图1所示,该数据库监控方法包括如下步骤:
S10:在SQL数据库中创建临时表。
其中,SQL数据库是基于SQL的数据库。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言,用于管理数据库。SQL数据库中的SQL指令和相应的SQL执行计划都会缓存到SQL数据库的性能表中。具体地,SQL指令缓存在性能表v$sql中,SQL执行计划缓存在性能表v$sql_plan中。然而,SQL指令及其相应的SQL执行计划在SQL数据库的性能表v$sql和性能表v$sql_plan中的储存时效均只为一天,超过一天的SQL指令和相应的SQL执行计划会从SQL数据库的性能表v$sql和性能表v$sql_plan中被自动删除。
临时表是在SQL数据库中创建的一个数据表,在SQL数据库中创建临时表,该临时表用于存储对SQL数据库中的性能表v$sql和性能表v$sql_plan进行扫描后的数据扫描结果。
在一个具体实施方式中,在SQL数据库中创建临时表,是指创建与SQL数据库中的性能表v$sql和性能表v$sql_plan相连的临时表,用以存储性能表v$sql中的SQL指令和性能表v$sql_plan中相应的SQL执行计划,以延长SQL指令和相应的SQL执行计划的存储时效。
S20:获取本地服务器发送的数据扫描指令。
其中,数据扫描指令是用于对数据库中的数据进行扫描的指令。本地服务器是与用户通过客户端进行信息交互的服务器,本地服务器在接收客户端发送的数据扫描指令后,会将该数据扫描指令发送给安装有数据库的终端设备,以使该终端设备的数据库获取到本地服务器发送的数据扫描指令。本实施例中,数据扫描指令具体指对性能表v$sql中缓存的SQL指令和性能表v$sql_plan中缓存的对应SQL执行计划进行扫描的指令,以保证数据扫描指令和被扫描的数据之间的对应。
S30:基于数据扫描指令,从SQL数据库中获取对应的数据扫描结果,并将数据扫描结果存储在临时表中。
其中,数据扫描结果是指依据数据扫描指令对相应的性能表进行扫描而得到的数据。在获取到本地服务器发送的数据扫描指令后,基于数据扫描指令扫描SQL数据库,以获取数据扫描结果并存储在临时表中,以避免数据扫描指令或其对应的数据扫描结果因超过性能表的缓存期而丢失。在数据扫描指令是对性能表v$sql中缓存的SQL指令和性能表v$sql_plan中缓存的SQL执行计划进行扫描的指令时,可分别对SQL数据库中的性能表v$sql和性能表v$sql_plan进行扫描,获取对应的数据扫描结果,并将获取到的扫描结果存储在步骤S10中创建的临时表中。在将数据扫描结果存储在临时表之后,即使超过一天的SQL指令和相应的SQL执行计划从SQL数据库的性能表v$sql和性能表v$sql_plan中被自动删除,也可以通过存储在临时表中的数据扫描结果来获取对应的数据。
S40:获取本地服务器发送的数据监控指令,数据监控指令包括监控时段。
其中,数据监控指令是指用于对临时表中的数据扫描结果进行监控的指令。监控时段用于选择需要对哪个时间段的数据进行监控。通过监控时段的设置,可以在临时表中快速定位到数据监控指令需要监控的数据。
在一个实施方式中,监控时段包括当前时间和监控时长。其中,当前时间是指接收到数据监控指令时系统的当前时间。监控时长是指对临时表中的数据扫描结果进行监控的时间长度。例如,接收到数据监控指令时系统的当前时间为2017年10月20日12:00,而监控时长是24小时,则此时数据监控指令中的监控时段即是指从2017年10月19日12:00至2017年10月20日12:00这24小时。
S50:从临时表中获取监控时段内的数据扫描结果作为目标数据,将目标数据发送给本地服务器。
其中,目标数据是指监控时段内的临时表中对应的数据扫描结果。目标数据根据监控时段来获取,因此不同监控时段获取的目标数据不一样,以确保目标数据与监控时段的对应,可以通过监控时段的选择来获取实际需要的目标数据,提高该数据库监控方法的灵活性。本实施例中,将目标数据发送给本地服务器,以使本地服务器获取所要监控的目标数据,并将该目标数据发送给客户端,以使相应的用户可通过客户端查看该目标数据。
在一具体实施方式中,可以在本地服务器中基于java语言创建一本地程序,通过本地程序向安装数据库的终端设备发送数据扫描指令,获取基于该数据扫描指令对临时表进行扫描而获取新产生的数据扫描结果,并存储于本地服务器预先创建的数据表中,以实现将临时表中的数据扫描结果长期有效地保存到本地服务器。
优选地,本地服务器预先创建的数据表可以根据数据监控指令中监控时段所体现的时间段命名,根据该时间段对得到的数据表命名有助于快速查找到相对应的目标数据。
例如,在一个数据监控指令中,监控时段是从2017年10月19日12:00至2017年10月20日12:00这24小时。则可以将对应的数据表命名为:2017.10.20.12.00-2017.10.21.12.00。通过这种命名方式,可以方便快速地在本地服务器中查找到相对应的目标数据。
优选地,可以设置每天定时执行一次该本地程序,以实现对临时表中数据扫描结果的自动提取,无需人工进行操作,实现数据的自动转移和保存。
本发明实施例提供的数据库监控方法中,首先在SQL数据库中创建临时表,通过在SQL数据库中创建临时表,以存储SQL数据库对应的性能表中缓存不能超过一天的数据。具体地,在获取本地服务器发送的数据扫描指令后,基于该数据扫描指令,从SQL数据库中获取对应的数据扫描结果,并将数据扫描结果存储在临时表中,以存储性能表v$sql中的SQL指令和性能表v$sql_plan中相应的SQL执行计划。再获取本地服务器发送的数据监控指令,该数据监控指令包括监控时段,从临时表中获取监控时段内的数据扫描结果作为目标数据,将该目标数据发送给本地服务器,以实现对SQL数据库中存储时效较短的数据的监控和保存,提高数据库的性能。该数据库监控方法可对SQL数据库性能表v$sql和性能表v$sql_plan中超过一天的相关数据进行监控,实现对数据库的长期监控。
在一个具体实施方式中,在将目标数据发送给本地服务器(即步骤S50)之后,数据库监控方法还包括:
S60:删除临时表中存储的目标数据。
临时表中的目标数据发送给本地服务器后,为减少数据库的存储压力,可以删除临时表中存储的已经发送给本地服务器的目标数据,以利于下次定时任务执行时对性能表v$sql中的SQL指令和性能表v$sql_plan中相应的SQL执行计划相关数据进行扫描后的数据扫描结果进行存储,可以及时地释放数据库的存储压力。
在一具体实施方式中,数据扫描指令包括全表扫描指令和/或隐式转换扫描指令,全表扫描指令包括全表扫描周期,隐式转换扫描指令包括隐式转换扫描周期。
其中,全表扫描指令是指对性能表v$sql和性能表v$sql_plan中与全表扫描相关的数据进行扫描的指令。全表扫描周期是指对性能表v$sql和性能表v$sql_plan中与全表扫描相关的数据进行扫描的时间间隔。隐式转换扫描指令是指对性能表v$sql和性能表v$sql_plan中与隐式转换相关的数据进行扫描的指令。隐式转换扫描周期是指对性能表v$sql和性能表v$sql_plan中与隐式转换相关的数据进行扫描的时间间隔。
在本实施方式中,基于数据扫描指令,从SQL数据库中获取对应的数据扫描结果,并将数据扫描结果存储在临时表中(即步骤S30)具体包括如下三种处理过程。
第一种处理过程具体为包括全表扫描查询的过程,即当数据扫描指令包括全表扫描指令时,步骤S30具体包括:基于全表扫描指令,在每个全表扫描周期执行一次全表扫描查询,从SQL数据库中获取对应的全表扫描结果,并将全表扫描结果存储在临时表中。
其中,全表扫描查询是指对性能表v$sql和性能表v$sql_plan中全表扫描相关数据进行查询和筛选的过程。全表扫描结果是指对性能表v$sql和性能表v$sql_plan中与全表扫描相关的数据进行扫描获得的结果。获取到的全表扫描结果存储在临时表中,以确保超过一天的SQL指令和相应的SQL执行计划从SQL数据库的性能表v$sql和性能表v$sql_plan中被自动删除之后,还可以从临时表中的全表扫描结果来获取对应的数据。
第二种处理过程具体为包括隐式转换扫描查询的过程,即当数据扫描指令包括隐式转换扫描指令时,步骤S30具体包括:基于隐式转换扫描指令,在每个隐式转换扫描周期执行一次隐式转换扫描查询,从SQL数据库中获取对应的隐式转换扫描结果,并将隐式转换扫描结果存储在临时表中。
隐式转换扫描查询是指对性能表v$sql和性能表v$sql_plan中隐式转换扫相关数据进行查询和筛选的过程。隐式转换扫描结果是指对性能表v$sql和性能表v$sql_plan中与隐式转换相关的数据进行扫描获得的结果。获取到的隐式转换扫描结果存储在临时表中,以确保超过一天的SQL指令和相应的SQL执行计划从SQL数据库的性能表v$sql和性能表v$sql_plan中被自动删除之后,还可以从临时表中的隐式转换扫描结果来获取对应的数据。
第三种处理过程包括第一种处理过程和第二种处理过程,既执行全表扫描查询也执行隐式转换扫描查询。
通过全表扫描指令和隐式转换扫描指令,根据对应的扫描周期执行全表扫描查询和隐式转换扫描查询,从SQL数据库中获取对应的全表扫描结果和隐式转换扫描结果,并将全表扫描结果和隐式转换扫描结果存储在临时表中。从整体上对可能影响SQL数据库性能的全表扫描和隐式转换进行监控,可以及时地根据扫描结果对数据库进行监控。
在特定情形中,可能需要针对SQL数据库中特定的某个影响因素进行单独监控,例如只监控全表扫描或隐式转换。此时,数据扫描指令可以只包括其中一种扫描指令,即全表扫描指令或隐式转换扫描指令,从而实现根据数据扫描指令来执行对应的扫描查询(全表扫描查询或隐式转换扫描指令),减少了不必要的扫描过程,提高了扫描速度,进而提高了数据库的监控效率。
在一个实施方式中,可以设置全表扫描周期大于隐式转换扫描周期。根据系统本身的设置特点和实践发现,系统中隐式转换出现的频率高于全表扫描。因此,可以将隐式转换扫描周期设置为更短,以便及时地进行扫描和监控,提高数据库监控的实时性和准确率。此外,将全表扫描的周期设置地更长,可以减轻全表扫描的查询负担,提高整体的扫描效率。
在这个实施方式中,根据全表扫描和隐式转换的特点来合理设置全表扫描周期和隐式转换扫描周期,以合理地分配对应的扫描查询进程,使得该数据库监控方法在监控效率和准确性上达到一个合理地匹配。
例如,可以设定全表扫描周期为10min,基于全表扫描指令,每隔10min执行一次全表扫描查询(通过SQL指令限定全表扫描查询条件),得到全表扫描结果,将全表扫描结果存储在已经创建好的临时表中。
例如,可以设定隐式转换扫描周期为2min,基于隐式转换扫描指令,每隔2min执行一次隐式转换扫描查询(通过SQL指令限定隐式转换查询条件),得到隐式转换扫描结果,将隐式转换扫描结果存储在已经创建好的临时表中。
在一具体实施方式中,如图2所示,在将目标数据发送给本地服务器(即步骤S50)之后,该数据库监控方法还包括:
S71:获取本地服务器发送的基于目标数据形成的数据分析结果,数据分析结果包括已有缺陷数据类型。
将目标数据发送给本地服务器之后,本地服务器会通过客户端显示该目标数据,并接收用户通过客户端上传的数据分析结果,并存储于本地服务器中。已有缺陷数据类型是指在当前时间以前,本地服务器从SQL数据库中获取对应的目标数据经分析后得到的会影响SQL数据库系统性能的数据类型。在数据分析过程中,通过对目标数据进行分析,获得缺陷数据类型。由于每次数据分析所获得的缺陷数据类型均发生在下一次数据监控的当前时间以前,将该当前时间以前已有的缺陷数据类型,称为已有缺陷数据类型。
具体地,可基于数据分析结果找出目标数据预示的SQL缺陷并根据SQL来制定具体的改进方案,最大限度地预防因全表扫描和/或隐式转换引发的严重性能问题。
由于全表扫描是对无索引的表进行查询,针对数据库系统出现的全表扫描现象,可以通过固化索引或者增加索引等方法来避免全表扫描对数据库系统性能的影响。对于全表扫描,对数据库中数据表进行查询时,如果该表数据量小且数据不会再增加,此时全表扫描对数据库系统的性能影响较小,该情形下可以忽略该全表扫描缺陷。如果该表数据量大,此时存在的全表扫描会对数据库系统性能产生影响,该情况下需要对出现的全表扫描对应的SQL指令进行优化。
对于隐式转换,如果某数据库系统中某功能的SQL查询指令存在隐式转换:例如,字段类型为varchar,但是代入的值类型为number。这样会导致索引无法使用,致使SQL执行计划很差,数据库消耗剧增,数据库主机CPU接近100%,在对数据库系统进行操作时可能会出现白屏现象,在这种情况下,对SQL指令进行修改就可以进行正常索引查询,避免对数据库系统性能造成影响。
S72:将已有缺陷数据类型存储在数据库中。
本地服务器将分析后得到的已有缺陷数据类型发送到数据库中进行存储,数据库在存储了已有缺陷数据类型之后,在后续的数据扫描过程中,可以基于该已有缺陷数据类型调整具体的数据扫描策略,以提高数据扫描的效率。
在一具体实施方式中,在获取本地服务器发送的数据扫描指令的步骤之后,数据库监控方法还包括:基于数据扫描指令,获取已有缺陷数据类型,已有缺陷数据类型包括已有全表扫描缺陷类型和/或已有隐式转换缺陷类型。
其中,已有全表扫描缺陷数据类型是指在当前时间以前,本地服务器从SQL数据库中获取的对应的全表扫描结果经分析后得到的会影响SQL数据库性能的缺陷数据类型。已有隐式转换缺陷数据类型是指在当前时间以前,本地服务器从SQL数据库中获取的对应的隐式转换扫描结果经分析后得到的会影响SQL数据库性能的缺陷数据类型。
由于数据扫描指令包括全表扫描指令和/或隐式转换扫描指令,由步骤S20中基于数据扫描指令,从SQL数据库中获取对应的数据扫描结果具体包括:从SQL数据库中获取对应的全表扫描结果和/或隐式转换扫描结果。
进一步地,从SQL数据库中获取对应的全表扫描结果具体包括:跳过与已有全表扫描缺陷数据类型相对应的全表扫描数据,获取全表扫描结果。
具体地,基于全表扫描指令,在每个全表扫描周期执行一次全表扫描查询,在全表扫描查询的过程中,跳过与已有全表扫描缺陷数据类型相对应的全表扫描数据,获取全表扫描结果,以避免对相同缺陷类型的全表扫描相关数据进行重复扫描和分析,可以减少全表扫描查询时间,提高查询效率。
进一步地,从SQL数据库中获取对应的隐式转换扫描结果具体包括:跳过与已有隐式转换缺陷数据类型相对应的隐式转换扫描数据,获取隐式转换扫描结果。
具体地,基于隐式转换扫描指令,在每个隐式转换扫描周期执行一次隐式转换扫描查询,在隐式转换扫描查询的过程中,跳过与已有隐式转换缺陷数据类型相对应的隐式转换扫描数据,获取隐式转换扫描结果,以避免对相同缺陷类型的隐式转换相关数据进行重复扫描和分析,可以减少隐式转换扫描查询时间,提高查询效率。
在一具体实施方式中,数据扫描指令为定时指令,定时指令包括程序触发时间和程序ID。其中,定时指令是指按照预定的时间执行的指令。程序触发时间是指程序执行的具体时刻。程序ID是用于识别扫描程序的标识,该扫描程序包括但不限于本实施例中的全表扫描程序和隐式转换扫描程序。
在该具体实施方式中,基于数据扫描指令,从SQL数据库中获取对应的数据扫描结果(即步骤S30)具体包括如下步骤:
获取系统当前时间,在系统当前时间为程序触发时间时,则调用与程序ID相对应的全表扫描程序和/或隐式转换扫描程序,从SQL数据库中获取对应的全表扫描结果和/或隐式转换扫描结果。
全表扫描程序是指全表扫描查询中对性能表v$sql和性能表v$sql_plan中全表扫描相关数据进行扫描的程序代码,该程序代码针对性能表v$sql和性能表v$sql_plan中与全表扫描相关的数据进行查询筛选。隐式转换扫描程序是指隐式转换扫描查询中对性能表v$sql和性能表v$sql_plan中与隐式转换扫相关的数据进行扫描的程序代码,该程序代码针对性能表v$sql和性能表v$sql_plan中与隐式转换相关的数据进行查询筛选。由于程序ID是用于唯一标识程序的标识,通过程序ID可以执行与数据扫描指令对应的程序(全表扫描程序和/或隐式转换扫描程序),以保证基于数据扫描指令,执行相应的程序,以得到需要的扫描结果。
通过获取系统当前时间,对系统当前时间是否为程序触发时间进行判断,以确定数据扫描程序是否应在当前系统时间进行调用。当系统当前时间和程序触发时间相同时,调用与程序ID相对应的全表扫描程序和/或隐式转换扫描程序,通过对性能表v$sql和性能表v$sql_plan进行扫描,获取SQL数据库中对应的全表扫描结果和/或隐式转换扫描结果。
具体地,当数据扫描指令为全表扫描指令时,若获取到的系统当前时间和程序触发时间相同,则调用全表扫描程序,通过对性能表v$sql和性能表v$sql_plan进行全表扫描,获取SQL数据库中的对应的全表扫描结果。当数据扫描指令为隐式转换扫描指令时,若获取到的系统当前时间和程序触发时间相同,则调用隐式转换扫描程序,通过对性能表v$sql和性能表v$sql_plan进行隐式转换扫描,获取SQL数据库中对应的隐式转换扫描结果。当数据扫描指令为全表扫描指令和隐式转换扫描指令时,若获取到的系统当前时间和程序触发时间相同,则调用全表扫描程序和隐式转换扫描程序,通过对性能表v$sql和性能表v$sql_plan进行全表扫描和隐式转换扫描,获取SQL数据库中对应的全表扫描结果和隐式转换扫描结果。
在该具体实施方式中,通过将数据扫描指令设置为定时指令,可以更加灵活、自由地实现对数据库的监控,以便更加智能化地对数据库进行监控。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图3示出与实施例1中数据库监控方法一一对应的数据库监控装置的原理框图。如图3所示,该数据库监控装置包括临时表创建模块10、数据扫描指令获取模块20、数据扫描结果获取和存储模块30、数据监控指令获取模块40、目标数据发送模块50、目标数据删除模块60和目标数据分析与存储模块70。其中,临时表创建模块10、数据扫描指令获取模块20、数据扫描结果获取和存储模块30、数据监控指令获取模块40、目标数据发送模块50、目标数据删除模块60和目标数据分析与存储模块70的实现功能与实施例中数据库监控方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
临时表创建模块10,用于在SQL数据库中创建临时表。
数据扫描指令获取模块20,用于获取本地服务器发送的数据扫描指令。
数据扫描结果获取和存储模块30,用于基于数据扫描指令,从SQL数据库中获取对应的数据扫描结果,并将数据扫描结果存储在临时表中。
数据监控指令获取模块40,用于获取本地服务器发送的数据监控指令,数据监控指令包括监控时段。
目标数据发送模块50,用于从临时表中获取监控时段内的数据扫描结果作为目标数据,将目标数据发送给本地服务器。
目标数据删除模块60,用于删除临时表中存储的目标数据。
优选地,数据扫描指令包括全表扫描指令和/或隐式转换扫描指令,全表扫描指令包括全表扫描周期,隐式转换扫描指令包括隐式转换扫描周期。
数据扫描结果获取和存储模块30包括全表扫描结果获取和存储单元31、隐式转换扫描结果获取和存储单元32。
全表扫描结果获取和存储单元31用于基于全表扫描指令,在每个全表扫描周期执行一次全表扫描查询,从SQL数据库中获取对应的全表扫描结果,并将全表扫描结果存储在临时表中。
隐式转换扫描结果获取和存储单元32基于隐式转换扫描指令,在每个隐式转换扫描周期执行一次隐式转换扫描查询,从SQL数据库中获取对应的隐式转换扫描结果,并将隐式转换扫描结果存储在临时表中。
优选地,数据扫描指令为定时指令,定时指令包括程序触发时间和程序ID。
数据扫描结果获取和存储模块30还包括程序触发时间判断单元33。
程序触发时间判断单元33,用于获取系统当前时间,在系统当前时间为程序触发时间时,则调用与程序ID相对应的全表扫描程序和/或隐式转换扫描程序,从SQL数据库中获取对应的全表扫描结果和/或隐式转换扫描结果。
优选地,全表扫描结果获取和存储单元31用于基于全表扫描指令,在每个全表扫描周期执行一次全表扫描查询,跳过与已有全表扫描缺陷数据类型相对应的全表扫描数据,获取全表扫描结果,并将全表扫描结果存储在临时表中。
优选地,隐式转换扫描结果获取和存储单元32基于隐式转换扫描指令,在每个隐式转换扫描周期执行一次隐式转换扫描查询,跳过与已有隐式转换缺陷数据类型相对应的隐式转换扫描数据,获取隐式转换扫描结果,并将隐式转换扫描结果存储在临时表中。
优选地,目标数据分析与存储模块70包括目标数据分析单元71和目标数据存储单元72。
目标数据分析单元71用于获取本地服务器发送的基于目标数据形成的数据分析结果,数据分析结果包括已有缺陷数据类型。
目标数据存储单元72用于将已有缺陷数据类型存储在数据库中。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中数据库监控方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中数据库监控装置中各模块/单元的功能,为避免重复,这里不再赘述。
实施例4
图4是本发明一实施例提供的终端设备的示意图。如图4所示,该实施例的终端设备80包括:处理器81、存储器82以及存储在存储器82中并可在处理器81上运行的计算机程序83。处理器81执行计算机程序83时实现实施例1中数据库监控方法的各个的步骤,例如图1所示的步骤S10、S20、S30、S40和S50。或者,处理器81执行计算机程序83时实现上述各装置实施例中各模块/单元的功能,例如图3所示临时表创建模块10、数据扫描指令获取模块20、数据扫描结果获取和存储模块30、数据监控指令获取模块40和目标数据发送模块50的功能。
示例性的,计算机程序83可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器82中,并由处理器81执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序83在终端设备80中的执行过程。例如,计算机程序83可以被分割成临时表创建模块10、数据扫描指令获取模块20、数据扫描结果获取和存储模块30、数据监控指令获取模块40和目标数据发送模块50。
终端设备80可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器81、存储器82。本领域技术人员可以理解,图4仅仅是终端设备80的示例,并不构成对终端设备80的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器81可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器82可以是终端设备80的内部存储单元,例如终端设备80的硬盘或内存。存储器82也可以是终端设备80的外部存储设备,例如终端设备80上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器82还可以既包括终端设备80的内部存储单元也包括外部存储设备。存储器82用于存储计算机程序以及终端设备所需的其他程序和数据。存储器82还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据库监控方法,其特征在于,包括:
在SQL数据库中创建临时表;
获取本地服务器发送的数据扫描指令;
基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,并将所述数据扫描结果存储在所述临时表中;
获取本地服务器发送的数据监控指令,所述数据监控指令包括监控时段;
从所述临时表中获取所述监控时段内的数据扫描结果作为目标数据,将所述目标数据发送给所述本地服务器。
2.如权利要求1所述的数据库监控方法,其特征在于,在所述将所述目标数据发送给所述本地服务器的步骤之后,所述数据库监控方法还包括如下步骤:
删除所述临时表中存储的所述目标数据。
3.如权利要求1所述的数据库监控方法,其特征在于,所述数据扫描指令包括全表扫描指令和/或隐式转换扫描指令,所述全表扫描指令包括全表扫描周期,所述隐式转换扫描指令包括隐式转换扫描周期;
所述基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,并将所述数据扫描结果存储在所述临时表中,包括:
基于所述全表扫描指令,在每个所述全表扫描周期执行一次全表扫描查询,从所述SQL数据库中获取对应的全表扫描结果,并将所述全表扫描结果存储在所述临时表中;和/或,
基于所述隐式转换扫描指令,在每个所述隐式转换扫描周期执行一次隐式转换扫描查询,从所述SQL数据库中获取对应的隐式转换扫描结果,并将所述隐式转换扫描结果存储在所述临时表中。
4.如权利要求1所述的数据库监控方法,其特征在于,在所述将所述目标数据发送给所述本地服务器的步骤之后,所述数据库监控方法还包括:
获取本地服务器发送的基于所述目标数据形成的数据分析结果,所述数据分析结果包括已有缺陷数据类型;
将所述已有缺陷数据类型存储在数据库中。
5.如权利要求3所述的数据库监控方法,其特征在于,在所述获取本地服务器发送的数据扫描指令的步骤之后,所述数据库监控方法还包括:基于所述数据扫描指令,获取已有缺陷数据类型,所述已有缺陷数据类型包括已有全表扫描缺陷数据类型和/或已有隐式转换缺陷数据类型;
所述从所述SQL数据库中获取对应的全表扫描结果,包括:
跳过与所述已有全表扫描缺陷数据类型相对应的全表扫描数据,获取所述全表扫描结果;
所述从所述SQL数据库中获取对应的隐式转换扫描结果,包括:
跳过与所述已有隐式转换缺陷数据类型相对应的隐式转换扫描数据,获取所述隐式转换扫描结果。
6.如权利要求1所述的数据库监控方法,其特征在于,所述数据扫描指令为定时指令,所述定时指令包括程序触发时间和程序ID;
所述基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,包括:
获取系统当前时间,在所述系统当前时间为所述程序触发时间时,则调用与所述程序ID相对应的全表扫描程序和/或隐式转换扫描程序,从所述SQL数据库中获取对应的全表扫描结果和/或隐式转换扫描结果。
7.一种数据库监控装置,其特征在于,包括:
临时表创建模块,用于在SQL数据库中创建临时表;
数据扫描指令获取模块,用于获取本地服务器发送的数据扫描指令;
数据扫描结果获取和存储模块,用于基于所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果,并将所述数据扫描结果存储在所述临时表中;
数据监控指令获取模块,用于获取本地服务器发送的数据监控指令,所述数据监控指令包括监控时段;
目标数据发送模块,用于从所述临时表中获取所述监控时段内的数据作为目标数据,将所述目标数据发送给所述本地服务器。
8.如权利要求7所述的数据库监控装置,其特征在于,所述数据扫描指令为定时指令,所述定时指令包括程序触发时间和程序ID;
所述数据扫描结果获取和存储模块包括:
程序触发时间判断单元,用于获取系统当前时间,在所述系统当前时间为所述程序触发时间时,则调用与所述程序ID相对应的所述数据扫描指令,从所述SQL数据库中获取对应的数据扫描结果。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述数据库监控方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据库监控方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014421.8A CN108460079B (zh) | 2018-01-08 | 2018-01-08 | 数据库监控方法、装置、终端设备及存储介质 |
PCT/CN2018/077250 WO2019134230A1 (zh) | 2018-01-08 | 2018-02-26 | 数据库监控方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014421.8A CN108460079B (zh) | 2018-01-08 | 2018-01-08 | 数据库监控方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108460079A true CN108460079A (zh) | 2018-08-28 |
CN108460079B CN108460079B (zh) | 2021-03-26 |
Family
ID=63221245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810014421.8A Active CN108460079B (zh) | 2018-01-08 | 2018-01-08 | 数据库监控方法、装置、终端设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108460079B (zh) |
WO (1) | WO2019134230A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271451A (zh) * | 2018-10-12 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种数据库外部链接的提取方法 |
CN113032277A (zh) * | 2021-04-16 | 2021-06-25 | 携程旅游网络技术(上海)有限公司 | 数据查询监测方法、装置、电子设备和存储介质 |
CN113326270A (zh) * | 2021-06-30 | 2021-08-31 | 中国平安人寿保险股份有限公司 | 数据存储方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030110153A1 (en) * | 2001-12-11 | 2003-06-12 | Sprint Communications Company L.P. | Database performance monitoring method and tool |
CN1882906A (zh) * | 2003-09-30 | 2006-12-20 | 维瑞泰斯操作公司 | 在数据存储器中保持临时数据的系统和方法 |
CN101860449A (zh) * | 2009-04-09 | 2010-10-13 | 华为技术有限公司 | 一种数据查询方法、装置及系统 |
CN102063490A (zh) * | 2010-12-20 | 2011-05-18 | 大唐移动通信设备有限公司 | 一种数据库分区方法和分区装置 |
CN106156115A (zh) * | 2015-04-07 | 2016-11-23 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
CN106156330A (zh) * | 2016-07-06 | 2016-11-23 | 北京金山安全管理系统技术有限公司 | 一种数据库适配方法及数据库适配器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560593B1 (en) * | 1999-07-20 | 2003-05-06 | Computer Associates Think, Inc. | Method and apparatus for viewing the effect of changes to an index for a database table on an optimization plan for a database query |
CN100372290C (zh) * | 2002-09-13 | 2008-02-27 | 华为技术有限公司 | 一种自动产生网管报表的方法 |
CN103412911B (zh) * | 2013-08-02 | 2016-08-10 | 中国工商银行股份有限公司 | 数据库系统的性能监控方法以及装置 |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
CN105868071A (zh) * | 2016-03-23 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 监测数据的处理方法及装置 |
-
2018
- 2018-01-08 CN CN201810014421.8A patent/CN108460079B/zh active Active
- 2018-02-26 WO PCT/CN2018/077250 patent/WO2019134230A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030110153A1 (en) * | 2001-12-11 | 2003-06-12 | Sprint Communications Company L.P. | Database performance monitoring method and tool |
CN1882906A (zh) * | 2003-09-30 | 2006-12-20 | 维瑞泰斯操作公司 | 在数据存储器中保持临时数据的系统和方法 |
CN101860449A (zh) * | 2009-04-09 | 2010-10-13 | 华为技术有限公司 | 一种数据查询方法、装置及系统 |
CN102063490A (zh) * | 2010-12-20 | 2011-05-18 | 大唐移动通信设备有限公司 | 一种数据库分区方法和分区装置 |
CN106156115A (zh) * | 2015-04-07 | 2016-11-23 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
CN106156330A (zh) * | 2016-07-06 | 2016-11-23 | 北京金山安全管理系统技术有限公司 | 一种数据库适配方法及数据库适配器 |
Non-Patent Citations (1)
Title |
---|
杜津玲: "SQL Server应用系统性能优化设计", 《电脑开发与应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271451A (zh) * | 2018-10-12 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种数据库外部链接的提取方法 |
CN113032277A (zh) * | 2021-04-16 | 2021-06-25 | 携程旅游网络技术(上海)有限公司 | 数据查询监测方法、装置、电子设备和存储介质 |
CN113326270A (zh) * | 2021-06-30 | 2021-08-31 | 中国平安人寿保险股份有限公司 | 数据存储方法、装置、设备及存储介质 |
CN113326270B (zh) * | 2021-06-30 | 2024-09-10 | 中国平安人寿保险股份有限公司 | 数据存储方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019134230A1 (zh) | 2019-07-11 |
CN108460079B (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424199B (zh) | 搜索方法和装置 | |
CN104090889B (zh) | 数据处理方法及系统 | |
CN102081625B (zh) | 一种数据查询的方法及查询服务器 | |
CN102436494B (zh) | 基于实践检验的执行计划优化的装置及方法 | |
CN108460079A (zh) | 数据库监控方法、装置、终端设备及存储介质 | |
US10346398B2 (en) | Grouping in analytical databases | |
CN105069134A (zh) | 一种Oracle统计信息自动收集方法 | |
CN105243169B (zh) | 一种数据查询方法及系统 | |
US20190095462A1 (en) | Parallel processing of large data files on distributed file systems with dynamic workload balancing | |
CN111045932B (zh) | 业务系统仿真处理方法、装置、电子设备及存储介质 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN109189385B (zh) | 算法配置方法、装置、计算机设备及存储介质 | |
CN104424347A (zh) | 在应用开发阶段期间预测查询所经过的响应时间的系统和方法 | |
CN106161519B (zh) | 一种信息获取方法和装置 | |
US9292405B2 (en) | HANA based multiple scenario simulation enabling automated decision making for complex business processes | |
US20230418824A1 (en) | Workload-aware column inprints | |
CN109359027B (zh) | Monkey测试方法、装置、电子设备及计算机可读存储介质 | |
US11755581B2 (en) | Cutoffs for pruning of database queries | |
CN107491549A (zh) | 一种数据处理方法及系统 | |
CN110647542B (zh) | 一种数据获取方法和装置 | |
CN116048817A (zh) | 数据处理控制方法、装置、计算机设备和存储介质 | |
CN106469175A (zh) | 数据处理方法及装置 | |
CN104750806A (zh) | 一种大数据的查询方法及系统 | |
CN111695077A (zh) | 资产信息推送方法、终端设备及可读存储介质 | |
CN102377580A (zh) | 性能数据的上传方法和设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |