CN113535773A - 数据库优化方法、数据库优化装置、电子设备和存储介质 - Google Patents
数据库优化方法、数据库优化装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113535773A CN113535773A CN202110853858.2A CN202110853858A CN113535773A CN 113535773 A CN113535773 A CN 113535773A CN 202110853858 A CN202110853858 A CN 202110853858A CN 113535773 A CN113535773 A CN 113535773A
- Authority
- CN
- China
- Prior art keywords
- query statement
- slow
- database
- query
- abnormal
- 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
Images
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/2453—Query optimisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据库优化方法,可用于数据库领域、金融领域或其他领域,该方法包括:获取针对数据库的查询指令,其中,查询指令包括至少一句查询语句;基于异常检测模型,确定查询语句是否为慢查询语句;在确定查询语句为慢查询语句的情况下,分析慢查询语句,以确定慢查询语句的异常原因;以及从关系列表中选择与异常原因对应的优化方案来优化慢查询语句。此外,本公开还提供了一种数据库优化装置、一种电子设备、一种可读存储介质和一种计算机程序产品。
Description
技术领域
本公开涉及数据库领域和金融领域,更具体地,涉及一种数据库优化方法、一种数据库优化装置、一种电子设备、一种可读存储介质和一种计算机程序产品。
背景技术
随着信息技术的普及,生活的方方面面都已经离不开信息系统,而信息系统中的绝大部分数据是存储在数据库中的。
在实现本发明构思的过程中,发明人发现,在从数据库中查询数据时,一部分查询语句耗时长、速度慢,极大的影响了用户体验和系统的可用性。
发明内容
有鉴于此,本公开提供了一种数据库优化方法、一种数据库优化装置、一种电子设备、一种可读存储介质和一种计算机程序产品。
本公开的一个方面提供了一种数据库优化方法,包括:获取针对数据库的查询指令,其中,上述查询指令包括至少一句查询语句;基于异常检测模型,确定上述查询语句是否为慢查询语句;在确定上述查询语句为上述慢查询语句的情况下,分析上述慢查询语句,以确定上述慢查询语句的异常原因;以及从关系列表中选择与上述异常原因对应的优化方案来优化上述慢查询语句。
根据本公开的实施例,还包括:获取历史查询语句的耗时数据;以及将上述历史查询语句的耗时数据作为训练数据,训练初始模型,得到上述异常检测模型。
根据本公开的实施例,上述基于异常检测模型,确定上述查询语句是否为慢查询语句,包括:获取上述查询语句的耗时数据;将上述查询语句的耗时数据输入上述异常检测模型中,输出检测结果;以及根据上述检测结果,确定上述查询语句是否为上述慢查询语句。
根据本公开的实施例,还包括:在获取的上述查询语句的耗时数据的数据量达到预设值的情况下,将上述查询语句的耗时数据作为训练数据,再次训练上述异常检测模型。
根据本公开的实施例,每一个上述异常原因与一个异常关键词组合相对应,上述异常关键词组合中包括多个异常关键词;其中,上述分析上述慢查询语句,以确定上述慢查询语句的异常原因,包括:通过执行计划分析工具,获取上述慢查询语句的运行明细信息;分别以每一个上述异常关键词组合中包含的多个异常关键词作为关键字,对上述慢查询语句的运行明细信息进行检索;以及在检索结果显示上述运行明细信息中包含上述多个异常关键词的情况下,确定与上述异常关键词组合对应的异常原因为上述慢查询语句的异常原因。
根据本公开的实施例,上述异常原因至少包括以下的一个或多个:查询语句中没有创建或使用索引;查询语句的查询字段类型与上述数据库的数据库类型不匹配;数据库的统计信息错误;存储数据库的硬件设施的数据读写效率低。
根据本公开的实施例,还包括:在完成对上述慢查询语句的优化后,循环测试优化后的慢查询语句。
本公开的另一个方面提供了一种数据库优化装置,包括获取模块、检测模块、分析模块和处理模块。其中,获取模块,用于获取针对数据库的查询指令,其中,上述查询指令包括至少一句查询语句;检测模块,用于基于异常检测模型,确定上述查询语句是否为慢查询语句;分析模块,用于在确定上述查询语句为上述慢查询语句的情况下,分析上述慢查询语句,以确定上述慢查询语句的异常原因;以及处理模块,用于从关系列表中选择与上述异常原因对应的优化方案来优化上述慢查询语句。
本公开的另一方面提供了电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上上述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上上述的方法。
本公开的另一方面提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述指令在被执行时用于实现如上上述的方法。
根据本公开的实施例,对于接收到的查询指令中的查询语句,通过异常检测模型确定该查询语句是否为慢查询语句,对于慢查询语句,通过分析该慢查询语句的异常原因,并根据与该异常原因对应的优化方案来优化该慢查询语句,实现了对慢查询语句的自动优化,至少部分地解决了数据库查询过程中容易出现响应速度慢的问题,从而有效提升了数据库的使用效率,降低了人力成本,保障了数据库关联的系统的实用性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用数据库优化方法的示例性系统架构100。
图2示意性示出了根据本公开实施例的数据块优化方法的流程图。
图3示意性示出了根据本公开另一实施例的数据库优化方法的流程图。
图4示意性示出了根据本公开的实施例的数据库优化装置的框图。
图5示意性示出了根据本公开实施例的适于实现数据库优化方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
信息化系统普遍使用数据库完成信息数据的存储,在数据库层面出现查询速度慢的情况下,信息系统的使用效率也会因此受到影响。
在相关技术中,对于数据库查询速度慢的问题,通过是通过人工的方式来发现问题、分析问题和解决问题的。例如,信息系统的客户在使用过程中发现一个功能的运行速度过慢,在客户向系统方反映该情况后,系统的研发人员或维护人员需要从各个方面来分析问题、确定问题的成因并解决问题。人工解决问题的方式大大提升了系统的运营成本,且难以主动发现问题,对客户的使用体验也造成了影响。
有鉴于此,本公开针对信息系统中容易出现响应速度慢的问题,提供了一种自动化的分析问题、解决问题的方案。具体地,本公开实施例提供了一种数据库优化方法、一种数据库优化装置、一种电子设备、一种可读存储介质和一种计算机程序产品,该方法包括:获取针对数据库的查询指令,其中,查询指令包括至少一句查询语句;基于异常检测模型,确定查询语句是否为慢查询语句;在确定查询语句为慢查询语句的情况下,分析慢查询语句,以确定慢查询语句的异常原因;以及从关系列表中选择与异常原因对应的优化方案来优化慢查询语句。
需要注意的是,本公开实施例提供的数据库优化方法和装置可用于数据库领域或金融领域,例如,对于银行业务系统,在查询用户数据时出现查询速度慢时,可以应用本公开实施例提供的数据库优化方法和装置来实时解决查询速度慢的问题。本公开实施例提供的数据库优化方法和装置还可以用于除数据库领域和金融领域外的其他任何领域,本公开实施例提供的数据库优化方法和装置的应用领域不作限定。
图1示意性示出了根据本公开实施例的可以应用数据库优化方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104,服务器105和数据库106。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器或服务器集群。
数据库106可以是任意种类的数据库,包括但不限于关系型数据库、图数据库、文档型数据库等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等。相应的,服务器105可以是各种客户端应用的后台服务器,数据库106可以存储各种客户端应用在使用过程中产生的数据。用户在使用终端设备101、102、103的客户端应用的过程中产生的指令会发送给服务器105,服务器105根据指令内容,从数据库106中调用相应的数据并进行处理,并将处理结果反馈给终端设备101、102、103。
需要说明的是,本公开实施例所提供的数据库优化方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据库优化装置一般可以设置于服务器105中。例如,服务器105可以获取用户在终端设备101、102、103上发出的针对于数据库106的查询指令,在检测到查询指令包含的查询语句存在慢查询语句的情况下,服务器105可以执行本公开实施例所提供的数据库优化方法,对该慢查询语句进行优化,从而解决慢查询问题。
此外,本公开实施例所提供的数据库优化方法也可以由除服务器105之外的其他设备执行,例如,由终端设备101、102、103,执行,或者,由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据库优化装置也可以设置于除服务器105之外的其他设备中。例如,服务器105可以将获取的慢查询语句发送给除服务器105之外的其他设备,由除服务器105之外的其他设备执行本公开实施例提供的数据库优化方法来优化该慢查询语句。
应该理解,图1中的终端设备、网络、服务器和数据库的种类或数目仅仅是示意性的。根据实现需要,可以具有任意种类或数目的终端设备、网络、服务器和数据库。
图2示意性示出了根据本公开实施例的数据块优化方法的流程图。
如图2所示,该方法包括操作S201~S204。
在操作S201,获取针对数据库的查询指令,其中,查询指令包括至少一句查询语句。
在操作S202,基于异常检测模型,确定查询语句是否为慢查询语句。
在操作S203,在确定查询语句为慢查询语句的情况下,分析慢查询语句,以确定慢查询语句的异常原因。
在操作S204,从关系列表中选择与异常原因对应的优化方案来优化慢查询语句。
根据本公开的实施例,数据库可以是关系型数据库、图数据库、文档型数据库等任意类型的数据库。
例如,数据库可以是Oracle、MySQL、PostgreSQL等关系型数据库,对应的查询语句为SQL查询语句;数据库也可以是Neo4J等图数据库,对应的查询语句为CQL查询语句;数据库还可以是Elasticsearch等文档型数据库,对应的查询语句为Query DSL查询语句。
根据本公开的实施例,可以通过任意方式来获取当前数据库的查询语句。例如,可以在数据库服务器中设置相应参数,以在数据库接收到查询指令时,获取相应的查询语句;再例如,可以根据数据库的日志文件来获取相应的查询语句。
根据本公开的实施例,异常检测模型可以是已充分训练且按一定规律进行更新的模型。
根据本公开的实施例,可以根据查询语句的耗时数据来确定该查询语句是否为慢查询语句。
根据本公开的实施例,慢查询语句的异常原因和该异常原因对应的优化方案可以是研发人员在配置数据库时设置的,也可以是研发人员根据数据库的运行情况设置的。
根据本公开的实施例,对于接收到的查询指令中的查询语句,通过异常检测模型确定该查询语句是否为慢查询语句,对于慢查询语句,通过分析该慢查询语句的异常原因,并根据与该异常原因对应的优化方案来优化该慢查询语句,实现了对慢查询语句的自动优化,至少部分地解决了数据库查询过程中容易出现响应速度慢的问题,从而有效提升了数据库的使用效率,降低了人力成本,保障了数据库关联的系统的实用性。
下面参考图3,结合具体实施例对图2所示的方法做进一步说明。
图3示意性示出了根据本公开另一实施例的数据库优化方法的流程图。
如图3所示,该方法包括操作S301~S307。
需要说明的是,本公开实施例中的流程图所示的操作除非明确说明不同操作之间存在执行的先后顺序,或者不同操作在技术实现上存在执行的先后顺序,否则,多个操作之间的执行顺序可以不分先后,多个操作也可以同时执行。
在操作S301,获取查询语句。
在操作S302,判断查询语句是否为慢查询语句。若该查询语句为慢查询语句,则执行操作S303;若该查询语句不为慢查询语句,则结束对该查询语句的处理。
在操作S303,分析慢查询语句的异常原因。
在操作S304,选择优化方案优化慢查询语句。
在操作S305,测试优化后的慢查询语句。
在操作S306,判断是否满足模型更新条件。在判断结果为满足模型更新条件的情况下,执行操作S307。
在操作S307,再训练异常检测模型。
根据本公开的实施例,在获取查询语句的同时,可以获取该查询语句的耗时数据。例如,可以在数据库服务器中设置相应参数,以获取到具体的查询语句及其耗时数据;或者,可以在应用程序中添加查询语句的日志,以记录查询语句及其耗时数据。
根据本公开的实施例,判断查询语句是否为慢查询语句可以通过如下操作来实现:获取查询语句的耗时数据;将查询语句的耗时数据输入异常检测模型中,输出检测结果;以及根据检测结果,确定查询语句是否为慢查询语句。
根据本公开的实施例,异常检测模型可以使用历史查询语句的耗时数据作为训练数据,训练初始模型来得到。具体地,异常检测模型的训练可以包括如下操作:采集历史查询语句的耗时数据,将收集到的数据随机分为训练数据集和测试数据集;基于异常检测算法、使用训练数据集对初始模型进行训练,得到训练模型;使用测试数据集验证训练模型的性能,并进行异常检测算法参数调优,从而获取最终的异常检测模型。
根据本公开的实施例,异常检测算法可以包括Isolation Forest算法、One ClassSVM算法、K-Means聚类算法等,此外,异常检测算法也可以是用于分类、聚类的机器学习算法。
根据本公开的实施例,在获取的查询语句的耗时数据的数据量达到预设值的情况下,还可以将获取的查询语句的耗时数据作为训练数据,再次训练异常检测模型,以实现对异常检测模型的更新。在对异常检测模型进行再训练的过程中,可以采取与初次训练异常检测模型时相同的方法。
根据本公开的实施例,慢查询语句的异常原因可以至少包括一下的一点:查询语句中没有创建或使用索引;查询语句的查询字段类型与数据库的数据库类型不匹配;数据库的统计信息错误;存储数据库的硬件设施的数据读写效率低。
根据本公开的实施例,每一个异常原因与一个异常关键词组合相对应,异常关键词组合中包括多个异常关键词。
根据本公开的实施例,分析慢查询语句的异常原因可以包括如下操作:通过执行计划分析工具,获取慢查询语句的运行明细信息;分别以每一个异常关键词组合中包含的多个异常关键词作为关键字,对慢查询语句的运行明细信息进行检索;以及在检索结果显示运行明细信息中包含多个异常关键词的情况下,确定与异常关键词组合对应的异常原因为慢查询语句的异常原因。
根据本公开的实施例,针对不同的异常原因,可以从预设的关系列表中选择匹配的优化方案,来优化慢查询语句。
例如,异常原因为“查询语句中没有创建或使用索引”,解决该异常原因的优化方案可以是:为查询语句中的字段创建索引,或者将该字段的索引删除并重新创建索引。
再例如,异常原因为“存储数据库的硬件设施的数据读写效率低”,解决该异常原因的优化方案可以是:采取弹性云机制,在磁盘的读写效率低、网络带宽不够、服务器内存不够等导致硬件设施的数据读写效率低的事件触发时,触发弹性云机制,调用云平台服务来解决相关问题。
根据本公开的实施例,不同的数据库可以使用各自的执行计划分析工具来分析查询语句的问题,并选择适当的优化方案来优化查询语句。
例如,在关系型数据库MySQL中可以使用EXPLAIN语句对查询语句进行分析。EXPLAIN语句可以分析指定的查询语句在指定的数据表中的执行情况,以查询语句A>10在数据表B中的执行情况为例,在使用EXPLAIN语句进行分析后,可以得到如表1所示的分析结果。
表1
id | select_type | table | partitions | type | psooibel_keys | key | key_len | ref | rows | filtered | Extra |
1 | SIMPLE | B | (Null) | ALL | (Null) | (Null) | (Null) | (Null) | 123 | 45 | … |
表1的内容可以是该查询语句的运行明细信息,可以通过关键词检索的方式进行检索,例如,在表1中可以检索到“tpye”这一表示索引类型的关键词,且检索到“tpye”一栏中的具体值为“ALL”。“tpye”和“ALL”这两个关键词的组合表示字段A没有使用索引,从而导致在对字段A进行查询时,是对数据表B进行了全表扫描,从而可以得出该查询语句的异常原因为“查询语句中没有创建或使用索引”。
在确定异常原因后,可以使用SQL语言中的索引创建语句,为字段A在数据表B中建立索引,从而解决该慢查询问题。
在检索到“tpye”一栏中的具体值为“Index”、“Range”、“Ref”或“Const”时,可以认为该查询语句已经使用了索引,此时,可以针对与其他异常原因关联的关键词的组合进行检索。
又例如,在文档型数据库MongoDB,可以使用解析语句explain()对查询语句A>10在数据表B中的执行情况进行分析,如果分析结果中出现“COLLSCAN”这一关键词,则表示该查询语句在查询时进行了全表扫描;此时可以通过索引创建语句createindex()建立该字段A的索引,以提升该字段A在数据表B中的查询效率。或者,也可以会用分析语句profile分析该数据库的慢查询原因,并调用相应的接口进行处理,从而提升系统的查询性能。
图4示意性示出了根据本公开的实施例的数据库优化装置的框图。
如图4所示,该装置包括获取模块410、检测模块420、分析模块430和处理模块440。
获取模块410,用于获取针对数据库的查询指令,其中,查询指令包括至少一句查询语句。
检测模块420,用于基于异常检测模型,确定查询语句是否为慢查询语句。
分析模块430,用于在确定查询语句为慢查询语句的情况下,分析慢查询语句,以确定慢查询语句的异常原因。
处理模块440,用于从关系列表中选择与异常原因对应的优化方案来优化慢查询语句。
根据本公开的实施例,对于接收到的查询指令中的查询语句,通过异常检测模型确定该查询语句是否为慢查询语句,对于慢查询语句,通过分析该慢查询语句的异常原因,并根据与该异常原因对应的优化方案来优化该慢查询语句,实现了对慢查询语句的自动优化,至少部分地解决了数据库查询过程中容易出现响应速度慢的问题,从而有效提升了数据库的使用效率,降低了人力成本,保障了数据库关联的系统的实用性。
根据本公开的实施例,该装置还包括第一训练模块,第一训练模块包括第一训练单元和第二训练单元,其中:
第一训练单元,用于获取历史查询语句的耗时数据。
第二训练单元,用于将历史查询语句的耗时数据作为训练数据,训练初始模型,得到异常检测模型。
根据本公开的实施例,检测模块420包括第一检测单元、第二检测单元和第三检测单元,其中:
第一检测单元,用于获取查询语句的耗时数据。
第二检测单元,用于将查询语句的耗时数据输入异常检测模型中,输出检测结果。
第三检测单元,用于根据检测结果,确定查询语句是否为慢查询语句。
根据本公开的实施例,该装置还包括第二训练模块,其中:
第二训练模块,用于在获取的查询语句的耗时数据的数据量达到预设值的情况下,将查询语句的耗时数据作为训练数据,再次训练异常检测模型。
根据本公开的实施例,每一个异常原因与一个异常关键词组合相对应,异常关键词组合中包括多个异常关键词。
根据本公开的实施例,分析模块430包括第一分析单元、第二分析单元和第三分析单元,其中:
第一分析单元,用于通过执行计划分析工具,获取慢查询语句的运行明细信息。
第二分析单元,用于分别以每一个异常关键词组合中包含的多个异常关键词作为关键字,对慢查询语句的运行明细信息进行检索。
第三分析单元,用于在检索结果显示运行明细信息中包含多个异常关键词的情况下,确定与异常关键词组合对应的异常原因为慢查询语句的异常原因。
根据本公开的实施例,异常原因至少包括以下的一个或多个:查询语句中没有创建或使用索引;查询语句的查询字段类型与数据库的数据库类型不匹配;数据库的统计信息错误;存储数据库的硬件设施的数据读写效率低。
根据本公开的实施例,该装置还包括测试模块,其中:
测试模块,用于在完成对慢查询语句的优化后,循环测试优化后的慢查询语句。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块410、检测模块420、分析模块430和处理模块440中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,获取模块410、检测模块420、分析模块430和处理模块440中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块410、检测模块420、分析模块430和处理模块440中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中数据库优化装置部分与本公开的实施例中数据库优化方法部分是相对应的,数据库优化装置部分的描述具体参考数据库优化方法部分,在此不再赘述。
图5示意性示出了根据本公开实施例的适于实现数据库优化方法的电子设备的框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,根据本公开实施例的计算机电子设备500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 503中,存储有电子设备500操作所需的各种程序和数据。处理器501、ROM502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,上述程序也可以存储在除ROM 502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在上述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。电子设备500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的数据库优化方法。
在该计算机程序被处理器501执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分509被下载和安装,和/或从可拆卸介质511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种数据库优化方法,包括:
获取针对数据库的查询指令,其中,所述查询指令包括至少一句查询语句;
基于异常检测模型,确定所述查询语句是否为慢查询语句;
在确定所述查询语句为所述慢查询语句的情况下,分析所述慢查询语句,以确定所述慢查询语句的异常原因;以及
从关系列表中选择与所述异常原因对应的优化方案来优化所述慢查询语句。
2.根据权利要求1所述的方法,还包括:
获取历史查询语句的耗时数据;以及
将所述历史查询语句的耗时数据作为训练数据,训练初始模型,得到所述异常检测模型。
3.根据权利要求1所述的方法,其中,所述基于异常检测模型,确定所述查询语句是否为慢查询语句,包括:
获取所述查询语句的耗时数据;
将所述查询语句的耗时数据输入所述异常检测模型中,输出检测结果;以及
根据所述检测结果,确定所述查询语句是否为所述慢查询语句。
4.根据权利要求3所述的方法,还包括:
在获取的所述查询语句的耗时数据的数据量达到预设值的情况下,将所述查询语句的耗时数据作为训练数据,再次训练所述异常检测模型。
5.根据权利要求1所述的方法,其中,每一个所述异常原因与一个异常关键词组合相对应,所述异常关键词组合中包括多个异常关键词;
其中,所述分析所述慢查询语句,以确定所述慢查询语句的异常原因,包括:
通过执行计划分析工具,获取所述慢查询语句的运行明细信息;
分别以每一个所述异常关键词组合中包含的多个异常关键词作为关键字,对所述慢查询语句的运行明细信息进行检索;以及
在检索结果显示所述运行明细信息中包含所述多个异常关键词的情况下,确定与所述异常关键词组合对应的异常原因为所述慢查询语句的异常原因。
6.根据权利要求1所述的方法,其中,所述异常原因至少包括以下的一个或多个:
查询语句中没有创建或使用索引;
查询语句的查询字段类型与所述数据库的数据库类型不匹配;
数据库的统计信息错误;
存储数据库的硬件设施的数据读写效率低。
7.根据权利要求1所述的方法,还包括:
在完成对所述慢查询语句的优化后,循环测试优化后的慢查询语句。
8.一种数据库优化装置,包括:
获取模块,用于获取针对数据库的查询指令,其中,所述查询指令包括至少一句查询语句;
检测模块,用于基于异常检测模型,确定所述查询语句是否为慢查询语句;
分析模块,用于在确定所述查询语句为所述慢查询语句的情况下,分析所述慢查询语句,以确定所述慢查询语句的异常原因;以及
处理模块,用于从关系列表中选择与所述异常原因对应的优化方案来优化所述慢查询语句。
9.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个指令,
其中,当所述一个或多个指令被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令被处理器执行时使处理器实现权利要求1至7中任一项所述的方法。
11.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时用于实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110853858.2A CN113535773B (zh) | 2021-07-27 | 2021-07-27 | 数据库优化方法、数据库优化装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110853858.2A CN113535773B (zh) | 2021-07-27 | 2021-07-27 | 数据库优化方法、数据库优化装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535773A true CN113535773A (zh) | 2021-10-22 |
CN113535773B CN113535773B (zh) | 2022-08-12 |
Family
ID=78121070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110853858.2A Active CN113535773B (zh) | 2021-07-27 | 2021-07-27 | 数据库优化方法、数据库优化装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535773B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647636A (zh) * | 2022-05-13 | 2022-06-21 | 杭银消费金融股份有限公司 | 大数据异常检测方法及系统 |
CN115033416A (zh) * | 2022-06-24 | 2022-09-09 | 建信金融科技有限责任公司 | 确定异常信息的方法、装置、电子设备及存储介质 |
CN115954108A (zh) * | 2023-03-10 | 2023-04-11 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
CN116467178A (zh) * | 2023-03-21 | 2023-07-21 | 北京飞轮数据科技有限公司 | 数据库检测方法、装置、电子设备和计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509530A (zh) * | 2018-03-14 | 2018-09-07 | 武汉斗鱼网络科技有限公司 | 一种MySQL慢查询语句自动优化方法、计算机设备和存储介质 |
CN110019349A (zh) * | 2019-04-02 | 2019-07-16 | 深圳前海微众银行股份有限公司 | 语句预警方法、装置、设备及计算机可读存储介质 |
CN110347754A (zh) * | 2019-06-05 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN110874364A (zh) * | 2019-11-19 | 2020-03-10 | 北京启迪区块链科技发展有限公司 | 一种查询语句处理方法、装置、设备及存储介质 |
CN112506951A (zh) * | 2020-12-07 | 2021-03-16 | 海南车智易通信息技术有限公司 | 数据库慢查询日志的处理方法、服务器、计算设备和系统 |
CN112765017A (zh) * | 2021-01-08 | 2021-05-07 | 中国工商银行股份有限公司 | 基于MySQL数据库的数据查询性能测试方法和装置 |
-
2021
- 2021-07-27 CN CN202110853858.2A patent/CN113535773B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509530A (zh) * | 2018-03-14 | 2018-09-07 | 武汉斗鱼网络科技有限公司 | 一种MySQL慢查询语句自动优化方法、计算机设备和存储介质 |
CN110019349A (zh) * | 2019-04-02 | 2019-07-16 | 深圳前海微众银行股份有限公司 | 语句预警方法、装置、设备及计算机可读存储介质 |
CN110347754A (zh) * | 2019-06-05 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN110874364A (zh) * | 2019-11-19 | 2020-03-10 | 北京启迪区块链科技发展有限公司 | 一种查询语句处理方法、装置、设备及存储介质 |
CN112506951A (zh) * | 2020-12-07 | 2021-03-16 | 海南车智易通信息技术有限公司 | 数据库慢查询日志的处理方法、服务器、计算设备和系统 |
CN112765017A (zh) * | 2021-01-08 | 2021-05-07 | 中国工商银行股份有限公司 | 基于MySQL数据库的数据查询性能测试方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647636A (zh) * | 2022-05-13 | 2022-06-21 | 杭银消费金融股份有限公司 | 大数据异常检测方法及系统 |
CN115033416A (zh) * | 2022-06-24 | 2022-09-09 | 建信金融科技有限责任公司 | 确定异常信息的方法、装置、电子设备及存储介质 |
CN115033416B (zh) * | 2022-06-24 | 2024-08-16 | 建信金融科技有限责任公司 | 确定异常信息的方法、装置、电子设备及存储介质 |
CN115954108A (zh) * | 2023-03-10 | 2023-04-11 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
CN115954108B (zh) * | 2023-03-10 | 2023-05-16 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
CN116467178A (zh) * | 2023-03-21 | 2023-07-21 | 北京飞轮数据科技有限公司 | 数据库检测方法、装置、电子设备和计算机可读介质 |
CN116467178B (zh) * | 2023-03-21 | 2024-02-20 | 北京飞轮数据科技有限公司 | 数据库检测方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113535773B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113535773B (zh) | 数据库优化方法、数据库优化装置、电子设备和存储介质 | |
US11106573B2 (en) | Regression testing of SQL execution plans for SQL statements | |
US10885000B2 (en) | Repairing corrupted references | |
US11243923B2 (en) | Computing the need for standardization of a set of values | |
US10762544B2 (en) | Issue resolution utilizing feature mapping | |
US20210092160A1 (en) | Data set creation with crowd-based reinforcement | |
US20150347212A1 (en) | Error classification in a computing system | |
US10007718B2 (en) | Managing data within a temporal relational database management system | |
CN113837596B (zh) | 一种故障确定方法、装置、电子设备及存储介质 | |
US20190213117A1 (en) | Regression testing of an application that uses big data as a source of data | |
US11775504B2 (en) | Computer estimations based on statistical tree structures | |
US11714855B2 (en) | Virtual dialog system performance assessment and enrichment | |
US10867249B1 (en) | Method for deriving variable importance on case level for predictive modeling techniques | |
CN114706856A (zh) | 故障处理方法及装置、电子设备和计算机可读存储介质 | |
CN114297385A (zh) | 模型训练方法、文本分类方法、系统、设备及介质 | |
CN113110984A (zh) | 报告处理方法、装置、计算机系统及可读存储介质 | |
US20180046700A1 (en) | Providing multidimensional attribute value information | |
US20160260042A1 (en) | Data comparison and analysis based on data analysis reporting | |
US20220309384A1 (en) | Selecting representative features for machine learning models | |
US20220358400A1 (en) | Probing Model Signal Awareness | |
US20230094479A1 (en) | Machine Learning Regression Analysis | |
CN117195855A (zh) | 工单查重方法、装置及相关设备 | |
CN118093418A (zh) | 测试案例评估方法、装置、设备、介质和程序产品 | |
CN114780429A (zh) | 代码覆盖率的确定方法、装置、设备、存储介质 | |
CN116383154A (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 |