CN109828983B - Pg数据库处理方法、装置、电子设备及存储介质 - Google Patents
Pg数据库处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109828983B CN109828983B CN201811537728.2A CN201811537728A CN109828983B CN 109828983 B CN109828983 B CN 109828983B CN 201811537728 A CN201811537728 A CN 201811537728A CN 109828983 B CN109828983 B CN 109828983B
- Authority
- CN
- China
- Prior art keywords
- database
- analysis
- connection
- instruction
- execution
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims abstract description 128
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000005856 abnormality Effects 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 12
- 238000012423 maintenance Methods 0.000 abstract description 10
- 238000013515 script Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000001514 detection method Methods 0.000 description 9
- 230000010354 integration Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000027455 binding Effects 0.000 description 2
- 238000009739 binding Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种PG数据库处理方法、装置、电子设备及存储介质。所述PG数据库处理方法包括:在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;对所述基础数据进行逻辑运算,得到TOP SQL语句;展示所述TOP SQL语句。本发明通过自动化的处理方式,在数据库运维时实现智能搜索,也为开发人员提供了分析基础,提高了运维效率,以进行运营过程优化。
Description
技术领域
本发明涉及运维技术领域,尤其涉及一种PG数据库处理方法、装置、电子设备及存储介质。
背景技术
关系型数据库管理***,例如MySQL,将数据保存在不同的表中,而不是将所有数据放在一起,因此可以提高数据处理速度和灵活性。关系型数据库管理***,其使用最常用的数据库管理语言--结构化查询语言(Structured Query Language,简称SQL)进行数据库管理。关系型数据库管理***目前在各行各业得到广泛应用。数据库功能检测可以帮助用户了解数据库的性能及排查异常。
但是,在现有技术方案中,对于PG数据库topsql语句的分析,通常需要厂商提供AWR报告,形式固定,缺乏灵活性,且由于技术人员的经验水平的限制,从同一份报告中所得到的结论也是不同的,无法将结论进行有效统一,给相关工作人员造成不便。
发明内容
鉴于以上内容,有必要提供一种PG数据库处理方法、装置、电子设备及存储介质,通过自动化的处理方式,在数据库运维时实现智能搜索,也为开发人员提供了分析基础,提高了运维效率,以进行运营过程优化。
一种PG数据库处理方法,所述方法包括:
在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;
在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;
根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;
对所述基础数据进行逻辑运算,得到TOP SQL语句;
展示所述TOP SQL语句。
根据本发明优选实施例,所述向所述PG数据库发送连接请求包括:
向所述PG数据库发送用户名及密码,以供所述PG数据库鉴权。
根据本发明优选实施例,所述建立与所述PG数据库的连接包括:
获取所述PG数据库的IP地址及端口;
将所述IP地址及端口发送至配置连接工具;
基于所述配置连接工具,建立与所述PG数据库的连接。
根据本发明优选实施例,所述基础数据包括以下一种或者多种的组合:
中央处理器CPU消耗、执行效率、执行时间、执行次数。
根据本发明优选实施例,所述对所述基础数据进行逻辑运算,得到TOP SQL语句包括:
将所述基础数据按照配置规则进行排序;
获取前预设位数的语句,作为所述TOP SQL语句。
根据本发明优选实施例,在展示所述TOP SQL语句时,所述方法还包括:
当接收到展示分析结果的指令时,获取配置的语句分析列表;
将所述TOP SQL语句与所述语句分析列表中的语句进行匹配,得到匹配的语句;
从所述语句分析列表中,获取与所述匹配的语句对应的分析结果;
展示所述分析结果。
根据本发明优选实施例,在展示所述分析结果后,所述方法还包括:
当所述分析结果显示异常时,获取异常的TOP SQL语句所对应的执行时间段;
获取所述执行时间段内的执行日志;
展示所述执行日志,以供用户查看。
一种PG数据库处理装置,所述装置包括:
发送单元,用于在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;
建立单元,用于在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;
调取单元,用于根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;
运算单元,用于对所述基础数据进行逻辑运算,得到TOP SQL语句;
展示单元,用于展示所述TOP SQL语句。
根据本发明优选实施例,所述发送单元具体用于:
向所述PG数据库发送用户名及密码,以供所述PG数据库鉴权。
根据本发明优选实施例,所述建立单元具体用于:
获取所述PG数据库的IP地址及端口;
将所述IP地址及端口发送至配置连接工具;
基于所述配置连接工具,建立与所述PG数据库的连接。
根据本发明优选实施例,所述基础数据包括以下一种或者多种的组合:
中央处理器CPU消耗、执行效率、执行时间、执行次数。
根据本发明优选实施例,所述运算单元具体用于:
将所述基础数据按照配置规则进行排序;
获取前预设位数的语句,作为所述TOP SQL语句。
根据本发明优选实施例,所述装置还包括:
获取单元,用于在展示所述TOP SQL语句时,当接收到展示分析结果的指令时,获取配置的语句分析列表;
匹配单元,用于将所述TOP SQL语句与所述语句分析列表中的语句进行匹配,得到匹配的语句;
所述获取单元,还用于从所述语句分析列表中,获取与所述匹配的语句对应的分析结果;
所述展示单元,还用于展示所述分析结果。
根据本发明优选实施例,所述获取单元,还用于在展示所述分析结果后,当所述分析结果显示异常时,获取异常的TOP SQL语句所对应的执行时间段;
所述获取单元,还用于获取所述执行时间段内的执行日志;
所述展示单元,还用于展示所述执行日志,以供用户查看。
一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述PG数据库处理方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述PG数据库处理方法。
由以上技术方案可以看出,本发明能够在接收到PG数据库分析指令后,向所述PG数据库发送连接请求,并在接收到所述PG数据库返回的允许连接指令后,再建立与所述PG数据库的连接,以实现身份鉴别,确保连接的安全性,根据所述PG数据库分析指令,有针对性地从所述PG数据库中调取基础数据,并对所述基础数据进行逻辑运算,得到TOP SQL语句,以展示所述TOP SQL语句,供分析使用,自动化的处理方式,在数据库运维时实现智能搜索,也为开发人员提供了分析基础,提高了运维效率,以进行运营过程优化。
附图说明
图1是本发明PG数据库处理方法的较佳实施例的流程图。
图2是本发明PG数据库处理装置的较佳实施例的功能模块图。
图3是本发明实现PG数据库处理方法的较佳实施例的电子设备的结构示意图。
主要元件符号说明
电子设备 | 1 |
存储器 | 12 |
处理器 | 13 |
PG数据库处理装置 | 11 |
发送单元 | 110 |
建立单元 | 111 |
调取单元 | 112 |
运算单元 | 113 |
展示单元 | 114 |
获取单元 | 115 |
匹配单元 | 116 |
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明PG数据库处理方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述PG数据库处理方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital SignalProcessor,DSP)、嵌入式设备等。
所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(PersonalDigital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
S10,在接收到PG数据库分析指令后,所述电子设备向所述PG数据库发送连接请求。
为了解决现有技术中手动查询,或者向厂商请求数据的不便,本技术方案提供了一种自动从PG数据库中调取TOP SQL语句的方案,给用户带来方便的同时,也增加了查询的灵活性。
在本发明的至少一个实施例中,所述PG数据库(PostgreSQL)是一种关系型数据库管理***,提供了多版本并行控制,支持几乎所有SQL(Structured Query Language,结构化查询语言)构件(包括子查询,事务和用户定义类型和函数),并且可以获得非常广阔范围的(开发)语言绑定(包括C,C++,Java,perl,tcl,和python)。
具体地,所述PG数据库设有日志表,记录所有对数据库的存取操作。针对用户端的每一存取操作,数据库对应有执行计划。数据库的执行计划是数据库服务器在执行查询语句的时候,根据查询效率、时间等确定的执行方案,由若干基本操作组成,例如:遍历整张表、利用索引、执行嵌套循环或Hash链接等。执行该执行计划后即可输出与所述查询语句对应的查询结果。所述日志表会记录每一查询语句及其对应的执行计划,每一执行计划的每一个基本操作都被记载在日志表中,从而通过读取日志表即可获取到数据库的基础数据。
在本发明的至少一个实施例中,所述PG数据库分析指令可以由用户触发,(例如:提供一个PG数据库分析按钮,通过触发所述PG数据库分析按钮启动检测流程,其中,所述PG数据库分析按钮可以是一个预先配置的虚拟按钮,也可以是一个实体按钮,本发明不限制),也可依照预定的频率自动执行。
具体地,对于分析的频率,可根据需求设置,例如:在每天的固定时刻执行,或者每半天执行一次等。为了使得定时检测自动执行,可通过持续集成工具,例如Jenkins平台执行。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。通过所述持续集成工具调用分析脚本,使所述检测脚本自动定时执行分析任务。
所述分析脚本可采用任意适宜的能够连接所述PG数据库的语言,并从所述PG数据库读取基础数据的脚本,例如:Jmeter脚本、Shell脚本、Python脚本等。
优选地,所述电子设备向所述PG数据库发送连接请求包括:
所述电子设备向所述PG数据库发送用户名及密码,以供所述PG数据库鉴权。
进一步地,所述PG数据库验证所述用户名及密码,并且在所述用户名及密码没有通过验证时,向所述电子设备发送拒绝连接指令,或者是,在所述用户名及密码通过验证时,向所述电子设备发送允许连接指令。
S11,在接收到所述PG数据库返回的允许连接指令后,所述电子设备建立与所述PG数据库的连接。
在本发明的至少一个实施例中,所述电子设备可以通过ODBC(Open DatabaseConnectivity,开放数据库连接)或JDBC(Java DataBase Connectivity,java数据库连接)或其他任意适宜的数据库连接进行访问。其中JDBC是一个面向对象的应用程序接口(API),通过它可访问各类数据库。ODBC是微软公司开放服务结构(WOSA,Windows Open ServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。数据库连接地址可为JDBC连接地址或ODBC连接地址。对所述分析脚本的设置还包括将JDBC或ODBC等数据库连接的驱动程序复制在所述分析脚本的脚本库(例如lib库)中。以便在启动所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接。
具体地,所述电子设备建立与所述PG数据库的连接包括:
所述电子设备获取所述PG数据库的IP地址及端口,将所述IP地址及端口发送至配置连接工具,并基于所述配置连接工具,建立与所述PG数据库的连接。
进一步地,所述配置连接工具包括,但不限于以上所述的ODBC或JDBC或其他任意适宜的数据库连接工具等。
S12,所述电子设备根据所述PG数据库分析指令,从所述PG数据库中调取基础数据。
在本发明的至少一个实施例中,所述PG数据库分析指令中包括所述用户自定义的分析范围,所述电子设备可以在所述分析范围内调取所述基础数据,并对所述基础数据进行分析。
具体地,所述基础数据包括,但不限于以下一种或者多种的组合:
CPU(Central Processing Unit,中央处理器)消耗、执行效率、执行时间、执行次数等。
进一步地,所述电子设备可以从所述PG数据库的日志表中读取所述基础数据,还可以从跟踪文件(SQL_TRACE)、AWR(Automatic Workload Repository)快照文件中读取所述基础数据,本发明对调取所述基础数据的方式不限制。
更进一步地,SQL_TRACE文件主要是追踪后台进程和用户进程所做的事情,其中可获取执行计划及相关统计数据。
更进一步地,AWR实质上是所述PG数据库的内置工具,所述AWR采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
S13,所述电子设备对所述基础数据进行逻辑运算,得到TOP SQL语句。
在本发明的至少一个实施例中,所述逻辑运算包括对所述基础数据进行逻辑排序。
在本发明的至少一个实施例中,所述TOP SQL语句是指按照一定规则,将所有SQL语句进行排序后,排在前面的多个语句。比如按照执行次数排序,按照逻辑读排序,按照CUP使用时间排序等,TOP的意思就是取排序后的前几个。
具体地,所述电子设备对所述基础数据进行逻辑运算,得到TOP SQL语句包括:
所述电子设备将所述基础数据按照配置规则进行排序,并获取前预设位数的语句,作为所述TOP SQL语句。
具体地,所述配置规则可以由所述电子设备进行配置,对于不同的基础数据,所述配置规则也不同。
进一步地,SQL语句的基础数据包括SQL语句的执行时间、执行次数、CPU消耗及其对应的执行计划等。例如:依照CPU消耗进行排序,即可得到消耗排名在前边的几个SQL语句作为所述TOP SQL语句;依照该SQL语句的执行时间进行排序,可确定执行时间较长的SQL语句作为所述TOP SQL语句。
S14,所述电子设备展示所述TOP SQL语句。
在本发明的至少一个实施例中,所述电子设备以报表的形式展示所述TOP SQL语句,并可以在展示界面上同时显示多个功能按钮,例如:历史数据展示按钮、数据对比展示按钮等,以供所述用户选择,从而为所述用户提供更多的服务,使所述展示界面的友好性更强。
优选地,在展示所述TOP SQL语句时,所述方法还包括:
当接收到展示分析结果的指令时,所述电子设备获取配置的语句分析列表,将所述TOP SQL语句与所述语句分析列表中的语句进行匹配,得到匹配的语句,所述电子设备从所述语句分析列表中,获取与所述匹配的语句对应的分析结果,并展示所述分析结果。
具体地,所述语句分析列表中存储着所有TOP SQL语句,及与所述所有TOP SQL语句对应的分析结果。所述分析结果可以由相关人员根据运维经验进行配置。例如,对于CPU消耗变化变化率达到预设阈值且执行之间达到预定阈值的TOP SQL语句,相关人员确定为异常的TOP SQL语句,需要进行优化,并将上述结论维护到所述语句分析列表中。
所述电子设备为相关人员提供了一个统一的分析结果,避免由于技术人员经验水平的限制,从同一份TOP SQL语句中得到不同结论,给相关人员造成不便。
具体地,所述分析结果也可以以报表的形式展示,便于检测人员分析查看。所述分析结果可以与所述TOP SQL语句整合在一个报表中,便于发送给指定开发人员,辅助所述开发人员进行整改修复代码,以完善SQL查询语句的执行计划。所述报表可包括,但不限于数据库的识别代码(例如数据库ID等)、查询语句识别代码(例如查询语句ID等)、违反的规则等必要的信息。
在本发明的至少一个实施例中,所述电子设备可以定制性地展示所述分析结果中的一部分,其余部分可先隐藏,并且,通过所述展示界面上的展开按钮,可以触发进一步展示详细信息的步骤。所述开发人员可以通过所述分析结果直接获知问题所在,从而能够快速了解所述PG数据库的性能及异常情况,以辅助所述开发人员进行进一步的分析处理。
优选地,在展示所述分析结果后,所述方法还包括:
当所述分析结果显示异常时,所述电子设备获取异常的TOP SQL语句所对应的执行时间段,及获取所述执行时间段内的执行日志,所述电子设备展示所述执行日志,以供用户查看。
具体地,所述电子设备自动匹配发生异常的执行时间段,并将发生异常的执行时间段内的所有执行日志展示在所述展示界面上,使相关人员可以根据所述执行日志进行有针对性的分析处理。
当然,在其他实施例中,所述电子设备也可以接收所述用户输入的时间段,并调取所述时间段内的所有执行日志,以满足用户的查询需求,便于所述用户自定义获取数据,用户体验更佳。
综上所述,本发明能在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;对所述基础数据进行逻辑运算,得到TOP SQL语句;展示所述TOP SQL语句。因此,本发明能通过自动化的处理方式,在数据库运维时实现智能搜索,也为开发人员提供了分析基础,提高了运维效率,以进行运营过程优化。
如图2所示,是本发明PG数据库处理装置的较佳实施例的功能模块图。所述PG数据库处理装置11包括发送单元110、建立单元111、调取单元112、运算单元113、展示单元114、获取单元115及匹配单元116。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
在接收到PG数据库分析指令后,发送单元110向所述PG数据库发送连接请求。
为了解决现有技术中手动查询,或者向厂商请求数据的不便,本技术方案提供了一种自动从PG数据库中调取TOP SQL语句的方案,给用户带来方便的同时,也增加了查询的灵活性。
在本发明的至少一个实施例中,所述PG数据库(PostgreSQL)是一种关系型数据库管理***,提供了多版本并行控制,支持几乎所有SQL(Structured Query Language,结构化查询语言)构件(包括子查询,事务和用户定义类型和函数),并且可以获得非常广阔范围的(开发)语言绑定(包括C,C++,Java,perl,tcl,和python)。
具体地,所述PG数据库设有日志表,记录所有对数据库的存取操作。针对用户端的每一存取操作,数据库对应有执行计划。数据库的执行计划是数据库服务器在执行查询语句的时候,根据查询效率、时间等确定的执行方案,由若干基本操作组成,例如:遍历整张表、利用索引、执行嵌套循环或Hash链接等。执行该执行计划后即可输出与所述查询语句对应的查询结果。所述日志表会记录每一查询语句及其对应的执行计划,每一执行计划的每一个基本操作都被记载在日志表中,从而通过读取日志表即可获取到数据库的基础数据。
在本发明的至少一个实施例中,所述PG数据库分析指令可以由用户触发,(例如:提供一个PG数据库分析按钮,通过触发所述PG数据库分析按钮启动检测流程,其中,所述PG数据库分析按钮可以是一个预先配置的虚拟按钮,也可以是一个实体按钮,本发明不限制),也可依照预定的频率自动执行。
具体地,对于分析的频率,可根据需求设置,例如:在每天的固定时刻执行,或者每半天执行一次等。为了使得定时检测自动执行,可通过持续集成工具,例如Jenkins平台执行。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。通过所述持续集成工具调用分析脚本,使所述检测脚本自动定时执行分析任务。
所述分析脚本可采用任意适宜的能够连接所述PG数据库的语言,并从所述PG数据库读取基础数据的脚本,例如:Jmeter脚本、Shell脚本、Python脚本等。
优选地,所述发送单元110向所述PG数据库发送连接请求包括:
所述发送单元110向所述PG数据库发送用户名及密码,以供所述PG数据库鉴权。
进一步地,所述PG数据库验证所述用户名及密码,并且在所述用户名及密码没有通过验证时,向所述电子设备发送拒绝连接指令,或者是,在所述用户名及密码通过验证时,向所述电子设备发送允许连接指令。
在接收到所述PG数据库返回的允许连接指令后,建立单元111建立与所述PG数据库的连接。
在本发明的至少一个实施例中,所述建立单元111可以通过ODBC(Open DatabaseConnectivity,开放数据库连接)或JDBC(Java DataBase Connectivity,java数据库连接)或其他任意适宜的数据库连接进行访问。其中JDBC是一个面向对象的应用程序接口(API),通过它可访问各类数据库。ODBC是微软公司开放服务结构(WOSA,Windows Open ServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。数据库连接地址可为JDBC连接地址或ODBC连接地址。对所述分析脚本的设置还包括将JDBC或ODBC等数据库连接的驱动程序复制在所述分析脚本的脚本库(例如lib库)中。以便在启动所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接。
具体地,所述建立单元111建立与所述PG数据库的连接包括:
所述建立单元111获取所述PG数据库的IP地址及端口,将所述IP地址及端口发送至配置连接工具,并基于所述配置连接工具,建立与所述PG数据库的连接。
进一步地,所述配置连接工具包括,但不限于以上所述的ODBC或JDBC或其他任意适宜的数据库连接工具等。
调取单元112根据所述PG数据库分析指令,从所述PG数据库中调取基础数据。
在本发明的至少一个实施例中,所述PG数据库分析指令中包括所述用户自定义的分析范围,所述调取单元112可以在所述分析范围内调取所述基础数据,并对所述基础数据进行分析。
具体地,所述基础数据包括,但不限于以下一种或者多种的组合:
CPU(Central Processing Unit,中央处理器)消耗、执行效率、执行时间、执行次数等。
进一步地,所述调取单元112可以从所述PG数据库的日志表中读取所述基础数据,还可以从跟踪文件(SQL_TRACE)、AWR(Automatic Workload Repository)快照文件中读取所述基础数据,本发明对调取所述基础数据的方式不限制。
更进一步地,SQL_TRACE文件主要是追踪后台进程和用户进程所做的事情,其中可获取执行计划及相关统计数据。
更进一步地,AWR实质上是所述PG数据库的内置工具,所述AWR采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
运算单元113对所述基础数据进行逻辑运算,得到TOP SQL语句。
在本发明的至少一个实施例中,所述逻辑运算包括对所述基础数据进行逻辑排序。
在本发明的至少一个实施例中,所述TOP SQL语句是指按照一定规则,将所有SQL语句进行排序后,排在前面的多个语句。比如按照执行次数排序,按照逻辑读排序,按照CUP使用时间排序等,TOP的意思就是取排序后的前几个。
具体地,所述运算单元113对所述基础数据进行逻辑运算,得到TOP SQL语句包括:
所述运算单元113将所述基础数据按照配置规则进行排序,并获取前预设位数的语句,作为所述TOP SQL语句。
具体地,所述配置规则可以由所述运算单元113进行配置,对于不同的基础数据,所述配置规则也不同。
进一步地,SQL语句的基础数据包括SQL语句的执行时间、执行次数、CPU消耗及其对应的执行计划等。例如:依照CPU消耗进行排序,即可得到消耗排名在前边的几个SQL语句作为所述TOP SQL语句;依照该SQL语句的执行时间进行排序,可确定执行时间较长的SQL语句作为所述TOP SQL语句。
展示单元114展示所述TOP SQL语句。
在本发明的至少一个实施例中,所述展示单元114以报表的形式展示所述TOP SQL语句,并可以在展示界面上同时显示多个功能按钮,例如:历史数据展示按钮、数据对比展示按钮等,以供所述用户选择,从而为所述用户提供更多的服务,使所述展示界面的友好性更强。
优选地,在展示所述TOP SQL语句时,所述方法还包括:
当接收到展示分析结果的指令时,获取单元115获取配置的语句分析列表,匹配单元116所述TOP SQL语句与所述语句分析列表中的语句进行匹配,得到匹配的语句,所述获取单元115从所述语句分析列表中,获取与所述匹配的语句对应的分析结果,所述展示单元114展示所述分析结果。
具体地,所述语句分析列表中存储着所有TOP SQL语句,及与所述所有TOP SQL语句对应的分析结果。所述分析结果可以由相关人员根据运维经验进行配置。例如,对于CPU消耗变化变化率达到预设阈值且执行之间达到预定阈值的TOP SQL语句,相关人员确定为异常的TOP SQL语句,需要进行优化,并将上述结论维护到所述语句分析列表中。
所述展示单元114为相关人员提供了一个统一的分析结果,避免由于技术人员经验水平的限制,从同一份TOP SQL语句中得到不同结论,给相关人员造成不便。
具体地,所述分析结果也可以以报表的形式展示,便于检测人员分析查看。所述分析结果可以与所述TOP SQL语句整合在一个报表中,便于发送给指定开发人员,辅助所述开发人员进行整改修复代码,以完善SQL查询语句的执行计划。所述报表可包括,但不限于数据库的识别代码(例如数据库ID等)、查询语句识别代码(例如查询语句ID等)、违反的规则等必要的信息。
在本发明的至少一个实施例中,所述展示单元114可以定制性地展示所述分析结果中的一部分,其余部分可先隐藏,并且,通过所述展示界面上的展开按钮,可以触发进一步展示详细信息的步骤。所述开发人员可以通过所述分析结果直接获知问题所在,从而能够快速了解所述PG数据库的性能及异常情况,以辅助所述开发人员进行进一步的分析处理。
优选地,在展示所述分析结果后,所述方法还包括:
当所述分析结果显示异常时,所述获取单元115获取异常的TOP SQL语句所对应的执行时间段,及获取所述执行时间段内的执行日志,所述展示单元114展示所述执行日志,以供用户查看。
具体地,所述获取单元115自动匹配发生异常的执行时间段,所述展示单元114将发生异常的执行时间段内的所有执行日志展示在所述展示界面上,使相关人员可以根据所述执行日志进行有针对性的分析处理。
当然,在其他实施例中,所述获取单元115也可以接收所述用户输入的时间段,并调取所述时间段内的所有执行日志,以满足用户的查询需求,便于所述用户自定义获取数据,用户体验更佳。
综上所述,本发明能在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;对所述基础数据进行逻辑运算,得到TOP SQL语句;展示所述TOP SQL语句。因此,本发明能通过自动化的处理方式,在数据库运维时实现智能搜索,也为开发人员提供了分析基础,提高了运维效率,以进行运营过程优化。
如图3所示,是本发明实现PG数据库处理方法的较佳实施例的电子设备的结构示意图。
所述电子设备1是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述电子设备1还可以是但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(PersonalDigital Assistant,PDA)、游戏机、交互式网络电视(InternetProtocol Television,IPTV)、智能式穿戴式设备等。
所述电子设备1还可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。
所述电子设备1所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如PG数据库处理程序。
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
所称处理器13可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行所述电子设备1的操作***以及安装的各类应用程序、程序代码等。
所述处理器13执行所述电子设备1的操作***以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个PG数据库处理方法实施例中的步骤,例如图1所示的步骤S10、S11、S12、S13、S14。
或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;对所述基础数据进行逻辑运算,得到TOP SQL语句;展示所述TOP SQL语句。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成发送单元110、建立单元111、调取单元112、运算单元113、展示单元114、获取单元115及匹配单元116。
所述存储器12可用于存储所述计算机程序和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机程序和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-AccessMemory,随机存取存储器)、FIFO(First In First Out,)等。或者,所述存储器12也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)等等。
所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种PG数据库处理方法,所述处理器13可执行所述多个指令从而实现:在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;根据所述PG数据库分析指令,从所述PG数据库中调取基础数据;对所述基础数据进行逻辑运算,得到TOP SQL语句;展示所述TOP SQL语句。
根据本发明优选实施例,所述处理器13还执行多个指令包括:
向所述PG数据库发送用户名及密码,以供所述PG数据库鉴权。
根据本发明优选实施例,所述处理器13还执行多个指令包括:
获取所述PG数据库的IP地址及端口;
将所述IP地址及端口发送至配置连接工具;
基于所述配置连接工具,建立与所述PG数据库的连接。
根据本发明优选实施例,所述基础数据包括以下一种或者多种的组合:
中央处理器CPU消耗、执行效率、执行时间、执行次数。
根据本发明优选实施例,所述处理器13还执行多个指令包括:
将所述基础数据按照配置规则进行排序;
获取前预设位数的语句,作为所述TOP SQL语句。
根据本发明优选实施例,所述处理器13还执行多个指令包括:
当接收到展示分析结果的指令时,获取配置的语句分析列表;
将所述TOP SQL语句与所述语句分析列表中的语句进行匹配,得到匹配的语句;
从所述语句分析列表中,获取与所述匹配的语句对应的分析结果;
展示所述分析结果。
根据本发明优选实施例,所述处理器13还执行多个指令包括:
当所述分析结果显示异常时,获取异常的TOP SQL语句所对应的执行时间段;
获取所述执行时间段内的执行日志;
展示所述执行日志,以供用户查看。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (9)
1.一种PG数据库处理方法,其特征在于,所述方法包括:
在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;
在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;
根据所述PG数据库分析指令,从所述PG数据库中调取基础数据,所述基础数据包括以下一种或者多种的组合:中央处理器CPU消耗、执行效率、执行时间、执行次数;
对所述基础数据进行逻辑运算,得到TOP SQL语句,其中,所述逻辑运算包括对所述基础数据进行逻辑排序;
展示所述TOP SQL语句。
2.如权利要求1所述的PG数据库处理方法,其特征在于,所述向所述PG数据库发送连接请求包括:
向所述PG数据库发送用户名及密码,以供所述PG数据库鉴权。
3.如权利要求1所述的PG数据库处理方法,其特征在于,所述建立与所述PG数据库的连接包括:
获取所述PG数据库的IP地址及端口;
将所述IP地址及端口发送至配置连接工具;
基于所述配置连接工具,建立与所述PG数据库的连接。
4.如权利要求1所述的PG数据库处理方法,其特征在于,所述对所述基础数据进行逻辑运算,得到TOP SQL语句包括:
将所述基础数据按照配置规则进行排序;
获取前预设位数的语句,作为所述TOP SQL语句。
5.如权利要求1所述的PG数据库处理方法,其特征在于,在展示所述TOP SQL语句时,所述方法还包括:
当接收到展示分析结果的指令时,获取配置的语句分析列表;
将所述TOP SQL语句与所述语句分析列表中的语句进行匹配,得到匹配的语句;
从所述语句分析列表中,获取与所述匹配的语句对应的分析结果;
展示所述分析结果。
6.如权利要求5所述的PG数据库处理方法,其特征在于,在展示所述分析结果后,所述方法还包括:
当所述分析结果显示异常时,获取异常的TOP SQL语句所对应的执行时间段;
获取所述执行时间段内的执行日志;
展示所述执行日志,以供用户查看。
7.一种PG数据库处理装置,其特征在于,所述装置包括:
发送单元,用于在接收到PG数据库分析指令后,向所述PG数据库发送连接请求;
建立单元,用于在接收到所述PG数据库返回的允许连接指令后,建立与所述PG数据库的连接;
调取单元,用于根据所述PG数据库分析指令,从所述PG数据库中调取基础数据,所述基础数据包括以下一种或者多种的组合:中央处理器CPU消耗、执行效率、执行时间、执行次数;
运算单元,用于对所述基础数据进行逻辑运算,得到TOP SQL语句,其中,所述逻辑运算包括对所述基础数据进行逻辑排序;
展示单元,用于展示所述TOP SQL语句。
8.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至6中任意一项所述的PG数据库处理方法。
9.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现如权利要求1至6中任意一项所述的PG数据库处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811537728.2A CN109828983B (zh) | 2018-12-15 | 2018-12-15 | Pg数据库处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811537728.2A CN109828983B (zh) | 2018-12-15 | 2018-12-15 | Pg数据库处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828983A CN109828983A (zh) | 2019-05-31 |
CN109828983B true CN109828983B (zh) | 2024-05-07 |
Family
ID=66858864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811537728.2A Active CN109828983B (zh) | 2018-12-15 | 2018-12-15 | Pg数据库处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828983B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543405A (zh) * | 2019-08-15 | 2019-12-06 | 平安普惠企业管理有限公司 | 日志展示方法、装置、存储介质和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858738A (zh) * | 2006-02-15 | 2006-11-08 | 华为技术有限公司 | 访问数据库的方法及装置 |
CN102385628A (zh) * | 2011-11-14 | 2012-03-21 | 北京锐安科技有限公司 | 一种基于jdbc的数据分布式处理方法 |
CN103258121A (zh) * | 2013-04-25 | 2013-08-21 | 重庆图珀信息技术有限公司 | 临床输血评估***及评估方法 |
CN108733720A (zh) * | 2017-04-24 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 多数据库类型的sql查询的在线校验方法和校验*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496569B2 (en) * | 2003-08-29 | 2009-02-24 | Sap Ag | Database access statement parser |
-
2018
- 2018-12-15 CN CN201811537728.2A patent/CN109828983B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858738A (zh) * | 2006-02-15 | 2006-11-08 | 华为技术有限公司 | 访问数据库的方法及装置 |
CN102385628A (zh) * | 2011-11-14 | 2012-03-21 | 北京锐安科技有限公司 | 一种基于jdbc的数据分布式处理方法 |
CN103258121A (zh) * | 2013-04-25 | 2013-08-21 | 重庆图珀信息技术有限公司 | 临床输血评估***及评估方法 |
CN108733720A (zh) * | 2017-04-24 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 多数据库类型的sql查询的在线校验方法和校验*** |
Also Published As
Publication number | Publication date |
---|---|
CN109828983A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160055262A1 (en) | Multidimensional spatial searching for identifying duplicate crash dumps | |
CN109558746B (zh) | 数据脱敏方法、装置、电子设备及存储介质 | |
WO2018184420A1 (zh) | 软件测试方法、装置、电子设备及介质 | |
CN109376873B (zh) | 运维方法、装置、电子设备及计算机可读存储介质 | |
CN109558384B (zh) | 日志分类方法、装置、电子设备和存储介质 | |
CN109740129B (zh) | 基于区块链的报表生成方法、装置、设备及可读存储介质 | |
CN109871368B (zh) | 数据库检测方法、装置、计算机装置及存储介质 | |
CN109885431B (zh) | 用于备份数据的方法和装置 | |
CN109359027B (zh) | Monkey测试方法、装置、电子设备及计算机可读存储介质 | |
CN112306700A (zh) | 一种异常rpc请求的诊断方法和装置 | |
US20200319947A1 (en) | Api and streaming solution for documenting data lineage | |
CN111767270A (zh) | 数据迁移方法、装置、服务器及存储介质 | |
CN111737148A (zh) | 自动回归测试方法、装置、计算机设备及存储介质 | |
CN112328275A (zh) | 用于核电厂的数据更新方法、装置、终端设备和存储介质 | |
CN109634986B (zh) | ***监测方法、装置、计算机及计算机可读存储介质 | |
CN109828983B (zh) | Pg数据库处理方法、装置、电子设备及存储介质 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN112199483B (zh) | 信息录入辅助方法、装置、电子设备及存储介质 | |
CN111506455B (zh) | 服务发布结果的查验方法及装置 | |
CN110874365B (zh) | 一种信息查询方法及其相关设备 | |
CN110097113B (zh) | 一种监控展示信息投放***工作状态的方法、装置及*** | |
CN109815082B (zh) | Kafka主题监控方法、装置、电子设备及存储介质 | |
CN111680110A (zh) | 数据处理方法、装置、bi***及介质 | |
CN108197253B (zh) | 一种云监控平台的设备查询方法、装置和设备 | |
CN113849520B (zh) | 异常sql的智能识别方法、装置、电子设备及存储介质 |
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 |