CN113568888A - 索引推荐方法及装置 - Google Patents
索引推荐方法及装置 Download PDFInfo
- Publication number
- CN113568888A CN113568888A CN202110869224.6A CN202110869224A CN113568888A CN 113568888 A CN113568888 A CN 113568888A CN 202110869224 A CN202110869224 A CN 202110869224A CN 113568888 A CN113568888 A CN 113568888A
- Authority
- CN
- China
- Prior art keywords
- index
- database
- sql
- data
- recommendation
- 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
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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/2457—Query processing with adaptation to user needs
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种索引推荐方法及装置,可用于人工智能技术领域,方法包括:基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。本申请能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及人工智能技术领域,具体涉及索引推荐方法及装置。
背景技术
近年来,随着金融科技的飞速发展,越来越多的银行等金融机构为增强科技应用能力、坚持科技赋能,启动IT转型,例如将一直以来采用的以IBM大型机、Oracle数据库和EMC存储设备为基础的IT架构体系转化为采用X86服务体系、基于MySQL的分布式数据库、以及运用各类新兴技术推动业务模式发展的数字化架构体系。
随着银行业务的发展与技术架构的转型,分布式系统框架正逐步代替由IOE(IBM、Oracle和EMC)为主的系统框架,但IT架构的转型以及业务数据的快速增长,也使传统的数据库索引设计难以符合新数据库规范、数据处理效率难以满足更新、查询需求,使得在系统转型推进过程中,逐步引发了一系列问题,如无法正常匹配最优索引以及数据库索引效率降低,进而引起的IT架构转型过程中的数据处理时间长等问题。
然而,现有的索引选优方式,需要运维人员在经历多次尝试后最终选取,该种方式需要耗费大量的人力及时间成本;若根据预设的选择标准进行选取,虽然能够缩短人为参与的时间,但由于选择标准的固定,使得其无法灵活的进行索引选优,因此无法保证索引结果的有效性,因此,无论上述哪一种方式,均存在无法同时满足索引选优的有效性、效率和自动化要求的问题。
发明内容
针对现有技术中的问题,本申请提供一种索引推荐方法及装置,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,满足分布式数据库在IT架构转型过程中的数据处理时间要求。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种索引推荐方法,包括:
基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;
将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
进一步地,在所述基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据之前,还包括:
接收索引推荐请求,其中,该索引推荐请求中包含有待进行索引推荐的一分布式数据库的标识;
将所述索引推荐请求中的分布式数据库确定为当前的目标分布式数据库;
根据所述目标分布式数据库的标识提取该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容。
进一步地,在所述基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据之前,还包括:
获取一分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容;
自所述分布式数据库对应的数据库表信息中提取各个SQL涉及表数据指标,以形成对应的SQL涉及表数据指标体系;
在所述分布式数据库对应的数据库SQL信息中提取各个SQL关键词指标,以形成对应的SQL关键词指标体系;
以及,自所述分布式数据库在测试环境中的数据库SQL历史执行日志内容中提取各个SQL执行结果指标,以形成对应的SQL执行结果指标体系;
根据所述SQL涉及表数据指标体系、SQL关键词指标体系和SQL执行结果指标体系生成数据库SQL特征指标体系。
进一步地,所述基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,包括:
对目标分布式数据库对应的数据库表信息和数据库SQL信息进行数据预处理,以得到对应的初始数据集,其中,所述数据预处理包括:文本特征提取、数据规范化处理和数据信息向量化;
基于预设的数据库SQL特征指标体系中的所述SQL关键词指标体系和SQL涉及表数据指标体系自所述初始数据集中提取对应的第一指标数据集;
基于预设的数据库SQL特征指标体系中的所述SQL执行结果指标体系,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行索引效率评估,以生成包含有对应的索引效率评估结果的第二指标数据集;
根据所述第一指标数据集和所述第二指标数据集生成目标数据。
进一步地,所述基于预设的数据库SQL特征指标体系中的所述SQL执行结果指标体系,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行索引效率评估,以生成包含有对应的索引效率评估结果的第二指标数据集,包括:
基于所述SQL执行结果指标体系中的执行计划指标和消耗值指标,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行初始索引效率评估,以生成一次评估结果;
获取所述目标分布式数据库的数据库SQL在生产环境中对应的数据库SQL历史执行日志内容;
将所述生产环境中对应的数据库SQL历史执行日志内容与所述一次评估结果中对应的测试环境中的数据库SQL历史执行日志内容进行拟合,以生成二次拟合结果,并根据该二次拟合结果生成第二指标数据集。
进一步地,在所述将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据之前,还包括:
基于预设的数据库SQL特征指标体系,自所述分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取历史目标数据;
应用预设的候选索引选取规则自所述分布式数据库对应的数据库表信息和数据库SQL信息中提取多个候选索引;
基于所述历史目标数据和各个所述候选索引训练预设的随机森林分类器,以得到用于进行索引效率推荐的索引效率推荐模型。
进一步地,所述将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,包括:
将所述目标数据输入预设的索引效率推荐模型,以使该索引效率推荐模型输出多个索引数据;
基于预设的权重选取规则自各个所述索引数据选取预设数量的目标索引;
获取各个所述目标索引在所述测试环境中的执行计划结果;
判断各个所述目标索引在所述测试环境中的执行计划结果的执行效率是否优于所述数据库SQL历史执行日志内容中的原索引的执行计划结果,若是,则将各个所述目标索引确定为所述目标分布式数据库对应的索引推荐结果数据;
输出所述目标分布式数据库对应的索引推荐结果数据。
第二方面,本申请提供一种索引推荐装置,包括:
数据选取模块,用于基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;
模型应用模块,用于将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的索引推荐方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的索引推荐方法。
由上述技术方案可知,本申请提供的一种索引推荐方法及装置,方法包括:基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据;通过基于目标分布式数据库的数据库SQL特征指标体系,自该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,能够有效提高目标数据选取的可靠性及有效性,能够为后续应用索引效率推荐模型进行索引推荐提供准确且全面的数据基础;通过将所述目标数据输入预设的索引效率推荐模型中,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,能够灵活地根据目标数据生成索引推荐结果,节省人力及时间成本,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,能够满足分布式数据库在IT架构转型过程中的数据处理时间要求,以有效提高T架构转型的效率及可靠性,并能够提高运维人员的用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的索引推荐装置与客户端设备之间的关系示意图。
图2是本申请实施例中的索引推荐方法的第一种流程示意图。
图3是本申请实施例中的索引推荐方法的第二种流程示意图。
图4是本申请实施例中的索引推荐方法的第三种流程示意图。
图5是本申请实施例中的索引推荐方法的第四种流程示意图。
图6是本申请实施例中的索引推荐方法的第五种流程示意图。
图7是本申请实施例中的索引推荐方法的第六种流程示意图。
图8是本申请实施例中的索引推荐方法的第七种流程示意图。
图9是本申请实施例中的索引推荐装置的结构示意图。
图10是本申请应用实例提供的索引推荐方法的主要步骤的整体流程图。
图11是本申请应用实例提供的数据库SQL文本特征提取流程图。
图12是本申请应用实例提供的示意性数据库SQL解析后举例结构图。
图13是本申请应用实例提供的整体模型训练与反馈流程图。
图14是本申请应用实例提供的分布式数据库索引效率检测与推荐索引装置的结构框图。
图15是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的索引推荐方法和装置可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本申请公开的索引推荐方法和装置的应用领域不做限定。
针对现有的索引选优方式存在无法同时满足索引选优的有效性、效率和自动化要求的问题,本申请实施例提供一种索引推荐方法,基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据;通过基于目标分布式数据库的数据库SQL特征指标体系,自该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,能够有效提高目标数据选取的可靠性及有效性,能够为后续应用索引效率推荐模型进行索引推荐提供准确且全面的数据基础;通过将所述目标数据输入预设的索引效率推荐模型中,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,能够灵活地根据目标数据生成索引推荐结果,节省人力及时间成本,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,能够满足分布式数据库在IT架构转型过程中的数据处理时间要求,以有效提高T架构转型的效率及可靠性,并能够提高运维人员的用户体验。
在本申请的一个或多个实施例中,SQL(Structured Query Language)是指结构化查询语言,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
基于上述内容,本申请还提供一种用于实现本申请一个或多个实施例中提供的索引推荐方法的索引推荐装置,该索引推荐装置可以为一服务器,参见图1,该索引推荐装置可以自行或通过第三方服务器等与各个客户端设备之间依次通信连接,索引推荐装置可以接收客户端设备发送的索引推荐请求,基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,索引推荐装置还可以将索引推荐结果数据发送至用户的客户端设备等进行显示。
在另一种实际应用情形中,前述的索引推荐装置进行索引推荐的部分可以在如上述内容的服务器中执行,也可以所有的操作都在所述用户端设备中完成。具体可以根据所述用户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述用户端设备中完成,所述用户端设备还可以包括处理器,用于索引推荐的具体处理。
可以理解的是,所述移动终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、个人数字助理(PDA)、车载设备、智能穿戴设备等任何能够装载应用的移动设备。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
上述的移动终端可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述移动终端之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例及应用实例分别进行详细说明。
为了解决现有的索引选优方式存在无法同时满足索引选优的有效性、效率和自动化要求的问题,本申请提供一种索引推荐方法的实施例,参见图2,基于索引推荐装置执行的所述索引推荐方法具体包含有如下内容:
步骤100:基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据。
在步骤100中,数据库基本数据共涉及三个主体:数据库、数据库表、数据库SQL,一个数据库中可包含多个数据库表与多条数据库SQL,一个数据库表也可对应多条数据库SQL。本申请将一个数据库视为一个整体,主要包括两个维度数据:数据库表信息Q1与数据库SQL信息Q2。其中数据库表信息Q1可包括但不限于表名、表字段数、表字段名、表数据量及其所涉及的SQL等数据。数据库SQL信息Q3可包括但不限于具体SQL数据、SQL调用频率、SQL最大消耗值及对应的数据表等数据。数据库索引是指数据库中一张指定表的具体索引信息数据。还可以获取数据库基本数据中的指定部分在测试环境中执行的数据库SQL历史执行日志内容Q3,可以理解的是,数据库SQL历史执行日志内容Q3为在测试环境中运行的部分数据库SQL而得到的执行结果数据。
步骤200:将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
在步骤200中,所述索引效率推荐模型可以采用随机森林分类器,利用机器学习中的随机森林分类方法进行索引效率推荐模型的构建。
从上述描述可知,本申请实施例提供的索引推荐方法,通过基于目标分布式数据库的数据库SQL特征指标体系,自该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,能够有效提高目标数据选取的可靠性及有效性,能够为后续应用索引效率推荐模型进行索引推荐提供准确且全面的数据基础;通过将所述目标数据输入预设的索引效率推荐模型中,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,能够灵活地根据目标数据生成索引推荐结果,节省人力及时间成本,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,能够满足分布式数据库在IT架构转型过程中的数据处理时间要求,以有效提高T架构转型的效率及可靠性,并能够提高运维人员的用户体验。
为了提高获取目标分布式数据库的基础数据的效率及可靠性,在本申请提供的索引推荐方法的一个实施例,参见图3,所述索引推荐方法的步骤100之前还具体包含有如下内容:
步骤010:接收索引推荐请求,其中,该索引推荐请求中包含有待进行索引推荐的一分布式数据库的标识;
步骤020:将所述索引推荐请求中的分布式数据库确定为当前的目标分布式数据库;
步骤030:根据所述目标分布式数据库的标识提取该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容。
从上述描述可知,本申请实施例提供的索引推荐方法,通过根据索引推荐请求调取目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容,能够有效提高获取目标分布式数据库的基础数据的效率及可靠性,进而能够为后续提取目标数据提供全面且有效的数据基础,进而能够进一步提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性。
为了进一步提高索引推荐的效率,在本申请提供的索引推荐方法的一个实施例,参见图4,所述索引推荐方法的步骤100之前还具体包含有如下内容:
步骤040:获取一分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容。
步骤050:自所述分布式数据库对应的数据库表信息中提取各个SQL涉及表数据指标,以形成对应的SQL涉及表数据指标体系;
步骤060:在所述分布式数据库对应的数据库SQL信息中提取各个SQL关键词指标,以形成对应的SQL关键词指标体系;
步骤070:自所述分布式数据库在测试环境中的数据库SQL历史执行日志内容中提取各个SQL执行结果指标,以形成对应的SQL执行结果指标体系;
步骤080:根据所述SQL涉及表数据指标体系、SQL关键词指标体系和SQL执行结果指标体系生成数据库SQL特征指标体系。
具体来说,数据库SQL特征指标体系,主要包含三个部分:SQL关键词指标体系、SQL涉及表数据指标体系、SQL执行结果指标体系,具体指标体系如表1所示:
SQL关键词指标体系是指:SQL关键词主要指一条SQL数据中涉及的SQL_ID、SQL类型(如更新、查询、删除等)、目标表名、关联关系、谓词、条件等内容。为获取SQL关键词信息,需要利用自然语言处理技术对SQL文本(即步骤S110中的数据库SQL信息Q2)进行关键词识别,定位关键词的位置与内容,对目标数据信息进行提取。
SQL涉及表数据指标体系是指:SQL涉及表数据指标体系,主要指当前SQL中目标表的数据量、字段个数、字段名、主键、表字段过滤率、目标索引等基本特征信息,SQL涉及表数据指标体系可以根据步骤S110中的数据库表信息Q1获取。
SQL执行结果指标体系是指:SQL执行结果指标体系,主要指该SQL的基本执行计划与效率信息,其中效率信息又包括最大请求时间、平均请求时间、调用数据量、是否死锁、死锁时长、COST消耗值(SQL消耗值)等内容,SQL执行结果指标体系可以自数据库SQL历史执行日志内容Q3获取。
从上述描述可知,本申请实施例提供的索引推荐方法,通过预先根据一分布式数据库的基础信息提取一套数据库SQL特征指标体系,使得后续在每次进行索引推荐时,均可以直接提取该数据库SQL特征指标体系,不需要重新生成数据库SQL特征指标体系,能够进一步提高索引推荐的效率,进而能够进一步提高根据索引推荐结果进行分布式数据库的更新及查询效率,满足分布式数据库在IT架构转型过程中的数据处理时间要求。
为了进一步提高索引推荐的效率及可靠性,在本申请提供的索引推荐方法的一个实施例,参见图5,所述索引推荐方法的步骤100具体包含有如下内容:
步骤101:对目标分布式数据库对应的数据库表信息和数据库SQL信息进行数据预处理,以得到对应的初始数据集,其中,所述数据预处理包括:文本特征提取、数据规范化处理和数据信息向量化。
具体来说,因初始数据集中可能存在高维数据,以及数字、文本等多种类型数据,首先对获取的初始数据集进行数据预处理,其中的数据规范化处理具体可以包含有数据离散化和数据归一化处理等。
步骤102:基于预设的数据库SQL特征指标体系中的所述SQL关键词指标体系和SQL涉及表数据指标体系自所述初始数据集中提取对应的第一指标数据集;
步骤103:基于预设的数据库SQL特征指标体系中的所述SQL执行结果指标体系,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行索引效率评估,以生成包含有对应的索引效率评估结果的第二指标数据集。
步骤104:根据所述第一指标数据集和所述第二指标数据集生成目标数据。
从上述描述可知,本申请实施例提供的索引推荐方法,通过数据预处理及索引效率评估,能够将目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容准确且快递地缩减为用于输入索引效率推荐模型的目标数据,进而能够有效提高索引推荐的效率及可靠性。
为了进一步提高索引效率评估结果的有效性及可靠性,在本申请提供的索引推荐方法的一个实施例,参见图6,所述索引推荐方法的步骤103具体包含有如下内容:
步骤131:基于所述SQL执行结果指标体系中的执行计划指标和消耗值指标,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行初始索引效率评估,以生成一次评估结果。
步骤132:获取所述目标分布式数据库的数据库SQL在生产环境中对应的数据库SQL历史执行日志内容。
步骤133:将所述生产环境中对应的数据库SQL历史执行日志内容与所述一次评估结果中对应的测试环境中的数据库SQL历史执行日志内容进行拟合,以生成二次拟合结果,并根据该二次拟合结果生成第二指标数据集。
具体来说,获取测试环境中数据库SQL历史执行日志内容Q3,对数据库SQL的历史执行记录进行分析,对可能存在效率问题的SQL,标记为1,否则标记为0。
1)依据执行计划TYPE效率监控标准,对其当前使用索引类别的基础性能进行标注,索引类别效率越好,赋值越高。对历史执行计划中效率较差,或更改过执行计划的SQL进行评估。
2)同时对SQL的调用频率与执行结果的COST进行评估。
3)最后对数据周期内,SQL执行结果的COST值变化较大的,进行评估。
而后基于生产环境数据的SQL效率的二次拟合判定
除依据监控标准对数据库SQL效率进行判别外,同时获取生产环境中对应SQL的执行结果,通过对测试结果数据与生产结果数据的拟合,对数据库SQL进行二次判定,并增加“测试与生产是否一致”字段,若一致,赋值为1,不一致,则赋值为0。对测试环境中数据库SQL效率达标,但运行时长、执行计划等与生产不一致的SQL,对其判定结果进行修正。
从上述描述可知,本申请实施例提供的索引推荐方法,通过对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行二次索引效率评估,能够有效提高索引效率评估结果的有效性及可靠性,进而能够进一步提高索引推荐结果的有效性、准确性及可靠性。
为了缩减需要进行模型训练的索引数量,在本申请提供的索引推荐方法的一个实施例,参见图7,所述索引推荐方法的步骤200之前还具体包含有如下内容:
步骤091:基于预设的数据库SQL特征指标体系,自所述分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取历史目标数据。
步骤092:应用预设的候选索引选取规则自所述分布式数据库对应的数据库表信息和数据库SQL信息中提取多个候选索引。
具体来说,利用获取的数据库表的基本信息,将数据库中各个表涉及的字段,是否适合作为索引候选字段进行初步筛选,如字段数据类型、字段过滤率、字段包含NULL列、字段是否为主键等均为影响索引效率的关键因素,对是否适合作为索引字段,采用布尔型数值进行标记,适合则赋值为1,不适合则赋值为0。同时单个索引字段数量也为索引效率的影响因素,对高维度数据库表,通过主成分、关联关系、以及字段内容更改频率分析等方法,最终对数据库表Tn确定候选索引字段列表,记为FTn={F1,F2,…,Fn}。因单个数据库表的索引数量也会对数据库性能产生影响,因此同一张数据库表构建的索引需控制在合理范围内,对数据库表Tn,记最优数量为Mn。依据步骤S150中步骤(1)对数据库表Tn选取的候选索引字段列表FTn,生成候选索引列表,记为ITn={I1,I2,…,Im}。
步骤093:基于所述历史目标数据和各个所述候选索引训练预设的随机森林分类器,以得到用于进行索引效率推荐的索引效率推荐模型。
将所得的待分析数据库SQL列表作为目标SQL优化数据集,记为S0;根据获取的测试数据集的实数特征矩阵T2对数据集S0进行向量化预处理后,得到数据量进一步缩减的数据库SQL特征指标体系TS={A1,A2,A3,…,B1,B2,…,C1,C2,…}作为机器学习模型的输入,即初始训练集S1。将各数据库表构建的候选索引列表ITn作为评估推荐模型目标选择项,最终输出对各候选索引的性能效果预估排序列表,记为CH={(I1:权重(I1)),I2:权重(I2)),…,In:权重(In))}。
利用机器学习中的随机森林分类方法进行数据库索引效率评估推荐模型的构建,其中随机森林分类器的训练流程主要包括:
a.将初始训练集S1,采用自助抽样法,生成训练子集S1’;
b.对于训练子集S1’,从数据指标体系TS中,无放回的随机抽取λ个特征,作为当前决策树上的每个节点是否进行分裂的依据,生成决策树D1’;
c.重复N次步骤1和2,得到n个训练子集S1’,S2’,…,Sn’,并生成决策树D1’,D2’,…,Dn’,共同形成随机森林D;
d.依据数据库表候选索引列表ITn作为分类选择,目标利用随机森林算法,最终决定目标SQL的索引选择与权重;
e.重复N次步骤d,直到所有SQL索引选择完成。
从上述描述可知,本申请实施例提供的索引推荐方法,通过获取候选索引,能够有效缩减需要进行模型训练的索引数量,能够有效提高基于所述历史目标数据和各个所述候选索引训练预设的随机森林分类器的效率,进而能够进一步提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性。
为了保证输出的所述目标分布式数据库对应的索引推荐结果数据的有效性及可靠性,参见图8,所述索引推荐方法的步骤200具体包含有如下内容:
步骤210:将所述目标数据输入预设的索引效率推荐模型,以使该索引效率推荐模型输出多个索引数据;
步骤220:基于预设的权重选取规则自各个所述索引数据选取预设数量的目标索引;
步骤230:获取各个所述目标索引在所述测试环境中的执行计划结果;
步骤240:判断各个所述目标索引在所述测试环境中的执行计划结果的执行效率是否优于所述数据库SQL历史执行日志内容中的原索引的执行计划结果,若是,则将各个所述目标索引确定为所述目标分布式数据库对应的索引推荐结果数据;
步骤250:输出所述目标分布式数据库对应的索引推荐结果数据。
具体来说,依据构建的数据库SQL索引效率评估推荐模型训练结果,对候选索引列表的选择权重进行排序,权重由高到低记为CH={(I1:权重(I1)),I2:权重(I2)),…,In:权重(In))},选取权重值最高的Top3作为初始推荐索引结果集合REC={I1,I2,I3}。
同时将数据库SQL对应推荐索引的执行计划结果,与数据库SQL历史执行日志内容Q3中的原数据库SQL执行计划结果进行比对,若推荐索引执行计划结果优于原数据库SQL执行计划结果,则当前索引进入最终推荐索引集合REC’,否则,则不进入最终推荐索引集合REC’,其中,执行计划结果进行比对的具体方式可以为比较执行时间或比较两者的COST消耗值等。
若最终推荐索引集合REC’不为空,则按照REC’中索引内容进行更改,以实现对数据库SQL的索引优化;若最终推荐索引集合REC’为空,则保持原索引内容。
从上述描述可知,本申请实施例提供的索引推荐方法,通过对推荐结果进行进一步的效率检测,并判断各个所述目标索引在所述测试环境中的执行计划结果的执行效率是否优于所述数据库SQL历史执行日志内容中的原索引的执行计划结果,能够有效保证输出的所述目标分布式数据库对应的索引推荐结果数据的有效性及可靠性,使得数据库SQL执行效率得到较好的提升,同时为后续数据库索引的使用提供了较好的可拓展性,也在一定程度上减少了人工干预、修改操作的风险,不仅可以提高IT架构转型过程中数据库的性能,构建候选索引列表,为数据库SQL的处理效率进行优化,还可以通过模型训练结果对后续索引的建立与选择进行迭代优化,不断提升数据库性能。
从软件层面来说,为了解决现有的索引选优方式存在无法同时满足索引选优的有效性、效率和自动化要求的问题,本申请提供一种用于执行所述索引推荐方法中全部或部分内容的索引推荐装置的实施例,参见图9,所述索引推荐装置具体包含有如下内容:
数据选取模块10,用于基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据。
模型应用模块20,用于将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
本申请提供的索引推荐装置的实施例具体可以用于执行上述实施例中的索引推荐方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本申请实施例提供的索引推荐装置,通过基于目标分布式数据库的数据库SQL特征指标体系,自该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,能够有效提高目标数据选取的可靠性及有效性,能够为后续应用索引效率推荐模型进行索引推荐提供准确且全面的数据基础;通过将所述目标数据输入预设的索引效率推荐模型中,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,能够灵活地根据目标数据生成索引推荐结果,节省人力及时间成本,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,能够满足分布式数据库在IT架构转型过程中的数据处理时间要求,以有效提高T架构转型的效率及可靠性,并能够提高运维人员的用户体验。
为了进一步说明本方案,本申请应用实例提供一种面向分布式数据库索引的效率检测与推荐的索引推荐方法,涉及机器学习、自然语言处理、数据库索引构建等技术领域,克服了现有技术中无法较好满足在IT架构转型过程中出现产生的数据库索引构建与匹配需求的问题,从数据库中现有索引、数据分布、以及数据库SQL实际运行效率等多维度入手,具体为一种结合历史数据与人工智能技术的索引效率检测与推荐的索引推荐方法。
参见图10,所述索引推荐方法的主要步骤如下:
S110:获取数据库基本数据。
本申请共涉及三个主体:数据库、数据库表、数据库SQL,一个数据库中可包含多个数据库表与多条数据库SQL,一个数据库表也可对应多条数据库SQL。本申请将一个数据库视为一个整体,主要包括两个维度数据:数据库表信息Q1与数据库SQL信息Q2。其中数据库表信息Q1可包括但不限于表名、表字段数、表字段名、表数据量及其所涉及的SQL等数据。数据库SQL信息Q3可包括但不限于具体SQL数据、SQL调用频率、SQL最大消耗值及对应的数据表等数据。数据库索引是指数据库中一张指定表的具体索引信息数据。
在该步骤中,还可以获取数据库基本数据中的指定部分在测试环境中执行的数据库SQL历史执行日志内容Q3,可以理解的是,数据库SQL历史执行日志内容Q3为在测试环境中运行的部分数据库SQL而得到的执行结果数据。
S120:数据库SQL特征指标体系构建。
数据库SQL特征指标体系,主要包含三个部分:SQL关键词指标体系、SQL涉及表数据指标体系、SQL执行结果指标体系,具体指标体系如表1所示。
(1)SQL关键词指标体系
SQL关键词主要指一条SQL数据中涉及的SQL_ID、SQL类型(如更新、查询、删除等)、目标表名、关联关系、谓词、条件等内容。为获取SQL关键词信息,需要利用自然语言处理技术对SQL文本(即步骤S110中的数据库SQL信息Q2)进行关键词识别,定位关键词的位置与内容,对目标数据信息进行提取。
(2)SQL涉及表数据指标体系
SQL涉及表数据指标体系,主要指当前SQL中目标表的数据量、字段个数、字段名、主键、表字段过滤率、目标索引等基本特征信息,SQL涉及表数据指标体系可以根据步骤S110中的数据库表信息Q1获取。
(3)SQL执行结果指标体系
SQL执行结果指标体系,主要指该SQL的基本执行计划与效率信息,其中效率信息又包括最大请求时间、平均请求时间、调用数据量、是否死锁、死锁时长、COST消耗值(SQL消耗值)等内容,SQL执行结果指标体系可以自数据库SQL历史执行日志内容Q3获取。
表1数据库SQL特征指标体系
S130:数据预处理
由S110与S120共获取两个初始数据集,具体为:根据步骤S110中的数据库表信息Q1生成以数据库表为维度的业务交易数据集D1、根据步骤S120中的SQL关键词指标体系和SQL涉及表数据指标体系各自对应的具体内容生成以数据库SQL为维度的特征指标体系数据集D2。因初始数据集中可能存在高维数据,以及数字、文本等多种类型数据,首先对获取的初始数据集进行数据预处理,主要包括以下几个部分:
(1)数据库SQL文本特征提取
对数据库SQL进行关键词识别与关键特征提取,具体规则如下,对应流程图如图11所示:
a.将获取的所述业务交易数据集D1中的当前数据库涉及的所有SQL文本作为初始数据集S01,共包含N条SQL文本,即S01={s1,s2,s3,…,sn};
b.对于初始数据集S01进行数据清洗,对SQL文本sn,降低SQL注释等无效内容对SQL文本特征提取准确度的影响,数据清洗后的数据集记为S1,具体规则如下:
SQL.replace(re.match('/*([*]|[\r\n]|(*+([/]|[\r\n])))*+/'),”,regex=True,inplace=True)
c.利用python-sqlparse工具对数据集S1中的SQL文本进行解析、拆分与格式化,以获取SQL文本数据中涉及的SQL类型、目标表名、关联关系、谓词、条件等内容。图12为一个示意性数据库SQL解析后举例结构图。遍历SQL文本解析后的SQL树,获取SQL特征向量Tsn={SQL类型,表名数组list,谓词list,条件list…};
d.因考虑SQL树的深度与每层节点数和SQL索引执行效率成反比,因此同时将SQL树深度、每层节点数等信息进行记录,对评估指标体系进行优化,纳入后续索引效率评估模型;同时,考虑出现在不同层的条件、谓词等也是SQL索引效率的关键因素,条件、谓词等的出现层数约深,影响效率的程度越高,因此同时记录各关键词所在树层数,对特征向量进行优化;
e.重复N次步骤c和d,直至遍历完成,形成数据库SQL特征矩阵T1,T1={Ts1,Ts2,…,Tsn},同时,根据步骤S120中的SQL关键词指标体系和SQL涉及表数据指标体系各自对应的具体内容生成以数据库SQL为维度的特征指标体系数据集D2。
(2)数据规范化处理
1)数据离散化:将数据集D1与数据集D2中涉及的SQL类型、字段过滤率等具有判定性规则的字段内容进行离散化处理,具有判定性规则的字段内容可以指非数值型字段,具体可以包含有表1中的SQL类型、字段过滤率、最大请求时间、平均请求时间、调用数据量以及COST消耗值等等。
例如考虑实际数据库应用系统中,一般数据库SQL更新与查询操作的比例在1:10左右,因此本申请应用实例主要针对查询SQL作为目标对象,即判定规则如表2所示:
表2
对过滤率字段,因在构建索引过程中,字段过滤率越高,索引性能效率越好,因此设定阈值,对字段进行划分,判定规则如表3所示:
表3
针对相关字段内容,采用布尔型数值,满足要求则赋值为1,否则赋值为0,具体离散化示例如下表4所示:
表4
SQL类型 | 是否为目标对象 | 字段过滤率 | 是否满足 |
SELECT | 1 | 5000000 | 1 |
UPDATE | 0 | 100000 | 1 |
DELETE | 0 | 2 | 0 |
…… | …… |
2)数据归一化:为消除字段本身属性值大小的影响,对数据库SQL基本执行时间、死锁时长等数值型数据进行归一化处理,即将数据值映射至[0,1]中,消除量纲对后续模型构建的影响,规则如下:
W*=(W-Wmin)/(Wmax-Wmin)
其中,W代表数值型数据的数值。
(3)数据信息向量化
对前述生成的以数据库SQL为维度的特征指标体系数据集D2中的构建数据库SQL特征指标体系内容进行向量化并作归一化处理,即对指标维度中各个字段N的组成的实数值矩阵进行向量化,建立可用于步骤S150中测试数据集的实数特征矩阵T2。
S140:数据库SQL初始索引效率评估。
(1)基于监控标准的数据库SQL初始效率判别
获取测试环境中数据库SQL历史执行日志内容Q3,对数据库SQL的历史执行记录进行分析,对可能存在效率问题的SQL,标记为1,否则标记为0。
1)依据执行计划TYPE效率监控标准,对其当前使用索引类别的基础性能进行标注,索引类别效率越好,赋值越高,具体规则如下表5所示:
表5
TYPE(执行计划) | 基础性能 |
ALL(全表扫描) | 1 |
INDEX(索引扫描) | 2 |
RANGE(范围索引扫描) | 3 |
REF(索引查找+扫描) | 4 |
EQ_REF(索引查找) | 5 |
CONST(常量) | 6 |
NULL(不访问索引) | 7 |
对历史执行计划中效率较差,或更改过执行计划的SQL进行评估,规则如下表6所示:
表6
if(TYPE<=3 or‘TPYE值不唯一’)—>是:赋值为1,否:赋值为0 |
执行计划TYPE的赋值结果举例参见表7:
表7
SQL_ID | TYPE | TPYE值是否更改 | 是否待分析 |
SQL_1 | 0 | 否 | 1 |
SQL_2 | 1 | 否 | 1 |
SQL_3 | 1 | 是 | 1 |
SQL_4 | 4 | 否 | 0 |
…… |
2)同时对SQL的调用频率与执行结果的COST进行评估,规则如下表8所示:
表8
COST的赋值结果举例参见表9:
表9
SQL_ID | 调用频率 | COST最大值 | 是否待分析 |
SQL_1 | 高 | 5000 | 1 |
SQL_2 | 高 | 300 | 0 |
SQL_3 | 低 | 20000 | 1 |
SQL_4 | 低 | 100 | 0 |
…… |
3)最后对数据周期内,SQL执行结果的COST值变化较大的,进行评估,规则如下表10所示:
表10
if(初次COST值<=1/2(末次COST值))—>是:赋值为1,否:赋值为0 |
对COST值变化较大的SQL的评估结果举例参见表11;
表11
SQL_ID | 初次执行COST值 | 末次执行COST值 | 是否待分析 |
SQL_1 | 1000 | 2000 | 1 |
SQL_2 | 1000 | 1000 | 0 |
…… |
(2)基于生产环境数据的SQL效率的二次拟合判定
除依据监控标准对数据库SQL效率进行判别外,同时获取生产环境中对应SQL的执行结果,通过对测试结果数据与生产结果数据的拟合,对数据库SQL进行二次判定,并增加“测试与生产是否一致”字段,若一致,赋值为1,不一致,则赋值为0。对测试环境中数据库SQL效率达标,但运行时长、执行计划等与生产不一致的SQL,对其判定结果进行修正,规则如下表12所示:
表12
SQL_ID | 初始是否待分析 | 测试生产是否一致 | 是否待分析 |
SQL_1 | 0 | 1 | 0 |
SQL_2 | 0 | 0 | 1 |
SQL_3 | 1 | 1 | 1 |
SQL_4 | 1 | 0 | 1 |
S150:数据库表候选索引构建
(1)数据库表候选字段的确定
利用步骤S110中获取的数据库表的基本信息,将数据库中各个表涉及的字段,是否适合作为索引候选字段进行初步筛选,如字段数据类型、字段过滤率、字段包含NULL列、字段是否为主键等均为影响索引效率的关键因素,对是否适合作为索引字段,采用布尔型数值进行标记,适合则赋值为1,不适合则赋值为0,规则示例如下表13所示:
表13
同时单个索引字段数量也为索引效率的影响因素,对高维度数据库表,通过主成分、关联关系、以及字段内容更改频率分析等方法,最终对数据库表Tn确定候选索引字段列表,记为FTn={F1,F2,…,Fn}。
(2)数据库表候选索引构建
因单个数据库表的索引数量也会对数据库性能产生影响,因此同一张数据库表构建的索引需控制在合理范围内,对数据库表Tn,记最优数量为Mn。依据步骤S150中步骤(1)对数据库表Tn选取的候选索引字段列表FTn,生成候选索引列表,记为ITn={I1,I2,…,Im},示例如下表14所示:
表14
候选索引序号 | 索引内容 |
Index_1(I1) | {F1} |
Index_2(I2) | {F1,F2} |
Index_3(I3) | {F1,F2,F3} |
Index_4(I4) | {F1,F3,F2} |
…… | …… |
S160:数据库索引效率评估推荐模型的构建
(1)模型输入与输出
将步骤S140中所得的待分析数据库SQL列表作为目标SQL优化数据集,记为S0;根据步骤S130中获取的测试数据集的实数特征矩阵T2对数据集S0进行向量化预处理后,得到数据量进一步缩减的数据库SQL特征指标体系TS={A1,A2,A3,…,B1,B2,…,C1,C2,…}作为机器学习模型的输入,即初始训练集S1。
将步骤S150中对各数据库表构建的候选索引列表ITn作为评估推荐模型目标选择项,最终输出对各候选索引的性能效果预估排序列表,记为CH={(I1:权重(I1)),I2:权重(I2)),…,In:权重(In))}
(2)效率评估推荐模型训练
本专利将利用机器学习中的随机森林分类方法进行数据库索引效率评估推荐模型的构建,其中随机森林分类器的训练流程主要包括:
a.将初始训练集S1,采用自助抽样法,生成训练子集S1’;
b.对于训练子集S1’,从数据指标体系TS中,无放回的随机抽取λ个特征,作为当前决策树上的每个节点是否进行分裂的依据,生成决策树D1’;
c.重复N次步骤1和2,得到n个训练子集S1’,S2’,…,Sn’,并生成决策树D1’,D2’,…,Dn’,共同形成随机森林D;
d.依据数据库表候选索引列表ITn作为分类选择,目标利用随机森林算法,最终决定目标SQL的索引选择与权重;
e.重复N次步骤d,直到所有SQL索引选择完成。
S170:数据库SQL索引效率评估推荐结果反馈
整体模型训练与反馈流程图如图13所示。其中最终推荐结果反馈主要分为以下几步:
依据步骤S160中构建的数据库SQL索引效率评估推荐模型训练结果,对候选索引列表的选择权重进行排序,权重由高到低记为CH={(I1:权重(I1)),I2:权重(I2)),…,In:权重(In))},选取权重值最高的Top3作为初始推荐索引结果集合REC={I1,I2,I3}。
同时将数据库SQL对应推荐索引的执行计划结果,与数据库SQL历史执行日志内容Q3中的原数据库SQL执行计划结果进行比对,若推荐索引执行计划结果优于原数据库SQL执行计划结果,则当前索引进入最终推荐索引集合REC’,否则,则不进入最终推荐索引集合REC’,其中,执行计划结果进行比对的具体方式可以为比较执行时间或比较两者的COST消耗值等。
若最终推荐索引集合REC’不为空,则按照REC’中索引内容进行更改,以实现对数据库SQL的索引优化;若最终推荐索引集合REC’为空,则保持原索引内容。
另外,在本申请的应用实例中,参见图14,用于实现所述索引推荐方法的分布式数据库索引效率检测与推荐索引装置还具体包含有数据获取模块、数据处理模块、模型构建模块、效果评估与推荐模块以及结果反馈与优化模块。
本申请应用实例提供的索引推荐方法,首先利用测试环境与生产环境的效果拟合,对数据库SQL进行性能效率评估,生成待优化SQL列表;其次面向积累的海量历史数据,利用机器学习技术构建候选索引列表,并通过效率评估与推荐模型挖掘潜在的最优索引匹配,使得数据库SQL执行效率得到较好的提升,同时为后续数据库索引的使用提供了较好的可拓展性,也在一定程度上减少了人工干预、修改操作的风险,不仅可以提高IT架构转型过程中数据库的性能,构建候选索引列表,为数据库SQL的处理效率进行优化,还可以通过模型训练结果对后续索引的建立与选择进行迭代优化,不断提升数据库性能。
从硬件层面来说,为了解决现有的索引选优方式存在无法同时满足索引选优的有效性、效率和自动化要求的问题,本申请提供一种用于实现所述索引推荐方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图15为本申请实施例的电子设备9600的系统构成的示意框图。如图15所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图15是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,索引推荐功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据。
步骤200:将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
从上述描述可知,本申请实施例提供的电子设备,通过基于目标分布式数据库的数据库SQL特征指标体系,自该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,能够有效提高目标数据选取的可靠性及有效性,能够为后续应用索引效率推荐模型进行索引推荐提供准确且全面的数据基础;通过将所述目标数据输入预设的索引效率推荐模型中,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,能够灵活地根据目标数据生成索引推荐结果,节省人力及时间成本,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,能够满足分布式数据库在IT架构转型过程中的数据处理时间要求,以有效提高T架构转型的效率及可靠性,并能够提高运维人员的用户体验。
在另一个实施方式中,索引推荐装置可以与中央处理器9100分开配置,例如可以将索引推荐装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现索引推荐功能。
如图15所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图15中所示的所有部件;此外,电子设备9600还可以包括图15中没有示出的部件,可以参考现有技术。
如图15所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的索引推荐方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的索引推荐方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据。
步骤200:将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过基于目标分布式数据库的数据库SQL特征指标体系,自该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,能够有效提高目标数据选取的可靠性及有效性,能够为后续应用索引效率推荐模型进行索引推荐提供准确且全面的数据基础;通过将所述目标数据输入预设的索引效率推荐模型中,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,能够灵活地根据目标数据生成索引推荐结果,节省人力及时间成本,能够有效提高索引推荐过程的自动化程度、智能化程度及效率,并能够有效提高索引推荐结果的有效性、准确性及可靠性,进而能够有效提高根据索引推荐结果进行分布式数据库的更新及查询效率,能够满足分布式数据库在IT架构转型过程中的数据处理时间要求,以有效提高T架构转型的效率及可靠性,并能够提高运维人员的用户体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种索引推荐方法,其特征在于,包括:
基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;
将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
2.根据权利要求1所述的索引推荐方法,其特征在于,在所述基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据之前,还包括:
接收索引推荐请求,其中,该索引推荐请求中包含有待进行索引推荐的一分布式数据库的标识;
将所述索引推荐请求中的分布式数据库确定为当前的目标分布式数据库;
根据所述目标分布式数据库的标识提取该目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容。
3.根据权利要求1所述的索引推荐方法,其特征在于,在所述基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据之前,还包括:
获取一分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容;
自所述分布式数据库对应的数据库表信息中提取各个SQL涉及表数据指标,以形成对应的SQL涉及表数据指标体系;
在所述分布式数据库对应的数据库SQL信息中提取各个SQL关键词指标,以形成对应的SQL关键词指标体系;
以及,自所述分布式数据库在测试环境中的数据库SQL历史执行日志内容中提取各个SQL执行结果指标,以形成对应的SQL执行结果指标体系;
根据所述SQL涉及表数据指标体系、SQL关键词指标体系和SQL执行结果指标体系生成数据库SQL特征指标体系。
4.根据权利要求3所述的索引推荐方法,其特征在于,所述基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据,包括:
对目标分布式数据库对应的数据库表信息和数据库SQL信息进行数据预处理,以得到对应的初始数据集,其中,所述数据预处理包括:文本特征提取、数据规范化处理和数据信息向量化;
基于预设的数据库SQL特征指标体系中的所述SQL关键词指标体系和SQL涉及表数据指标体系自所述初始数据集中提取对应的第一指标数据集;
基于预设的数据库SQL特征指标体系中的所述SQL执行结果指标体系,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行索引效率评估,以生成包含有对应的索引效率评估结果的第二指标数据集;
根据所述第一指标数据集和所述第二指标数据集生成目标数据。
5.根据权利要求4所述的索引推荐方法,其特征在于,所述基于预设的数据库SQL特征指标体系中的所述SQL执行结果指标体系,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行索引效率评估,以生成包含有对应的索引效率评估结果的第二指标数据集,包括:
基于所述SQL执行结果指标体系中的执行计划指标和消耗值指标,对所述目标分布式数据库对应的数据库SQL历史执行日志内容进行初始索引效率评估,以生成一次评估结果;
获取所述目标分布式数据库的数据库SQL在生产环境中对应的数据库SQL历史执行日志内容;
将所述生产环境中对应的数据库SQL历史执行日志内容与所述一次评估结果中对应的测试环境中的数据库SQL历史执行日志内容进行拟合,以生成二次拟合结果,并根据该二次拟合结果生成第二指标数据集。
6.根据权利要求3所述的索引推荐方法,其特征在于,在所述将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据之前,还包括:
基于预设的数据库SQL特征指标体系,自所述分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取历史目标数据;
应用预设的候选索引选取规则自所述分布式数据库对应的数据库表信息和数据库SQL信息中提取多个候选索引;
基于所述历史目标数据和各个所述候选索引训练预设的随机森林分类器,以得到用于进行索引效率推荐的索引效率推荐模型。
7.根据权利要求1至6任一项所述的索引推荐方法,其特征在于,所述将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据,包括:
将所述目标数据输入预设的索引效率推荐模型,以使该索引效率推荐模型输出多个索引数据;
基于预设的权重选取规则自各个所述索引数据选取预设数量的目标索引;
获取各个所述目标索引在所述测试环境中的执行计划结果;
判断各个所述目标索引在所述测试环境中的执行计划结果的执行效率是否优于所述数据库SQL历史执行日志内容中的原索引的执行计划结果,若是,则将各个所述目标索引确定为所述目标分布式数据库对应的索引推荐结果数据;
输出所述目标分布式数据库对应的索引推荐结果数据。
8.一种索引推荐装置,其特征在于,包括:
数据选取模块,用于基于预设的数据库SQL特征指标体系,在目标分布式数据库对应的数据库表信息、数据库SQL信息和在测试环境中的数据库SQL历史执行日志内容中提取目标数据;
模型应用模块,用于将所述目标数据输入预设的索引效率推荐模型,并根据该索引效率推荐模型输出的数据生成所述目标分布式数据库对应的索引推荐结果数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的索引推荐方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的索引推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110869224.6A CN113568888A (zh) | 2021-07-30 | 2021-07-30 | 索引推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110869224.6A CN113568888A (zh) | 2021-07-30 | 2021-07-30 | 索引推荐方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113568888A true CN113568888A (zh) | 2021-10-29 |
Family
ID=78169350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110869224.6A Pending CN113568888A (zh) | 2021-07-30 | 2021-07-30 | 索引推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568888A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775621A (zh) * | 2023-08-23 | 2023-09-19 | 北京遥感设备研究所 | 一种基于索引选择性的数据库智能索引优化方法 |
-
2021
- 2021-07-30 CN CN202110869224.6A patent/CN113568888A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775621A (zh) * | 2023-08-23 | 2023-09-19 | 北京遥感设备研究所 | 一种基于索引选择性的数据库智能索引优化方法 |
CN116775621B (zh) * | 2023-08-23 | 2024-01-02 | 北京遥感设备研究所 | 一种基于索引选择性的数据库智能索引优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10339038B1 (en) | Method and system for generating production data pattern driven test data | |
CN108681970A (zh) | 基于大数据的理财产品推送方法、系统及计算机存储介质 | |
CN109189782A (zh) | 一种区块链商品交易查询中的索引方法 | |
CN109063000A (zh) | 问句推荐方法、客服系统以及计算机可读存储介质 | |
CN111582341B (zh) | 用户异常操作预测方法及装置 | |
CN113157947A (zh) | 知识图谱的构建方法、工具、装置和服务器 | |
CN113379457A (zh) | 面向金融领域的智能营销方法 | |
CN107977678A (zh) | 用于输出信息的方法和装置 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
CN114154672A (zh) | 一种用于客户流失预测的数据挖掘方法 | |
CN112907358A (zh) | 贷款用户信用评分方法、装置、计算机设备和存储介质 | |
CN111897890A (zh) | 金融业务处理方法及装置 | |
CN115063035A (zh) | 基于神经网络的客户评估方法、系统、设备及存储介质 | |
CN111475158A (zh) | 子领域划分方法、装置、电子设备和计算机可读存储介质 | |
CN113568888A (zh) | 索引推荐方法及装置 | |
CN114461705A (zh) | 数据可视化生成方法、装置、电子设备及存储介质 | |
CN110062112A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN115292475A (zh) | 基于智慧城市的云计算服务信息处理方法及系统 | |
CN111460268B (zh) | 数据库查询请求的确定方法、装置和计算机设备 | |
CN111274331A (zh) | 关系数据管理维护系统及方法 | |
CN111639117A (zh) | 基于数据加工的业务处理方法及装置 | |
US11934396B2 (en) | Data reconciliation for big data environments | |
US11106689B2 (en) | System and method for self-service data analytics | |
CN114153993B (zh) | 一种用于智能问答的知识图谱自动化构建方法及系统 | |
US20240160698A1 (en) | Systems and methods for generating synthetic data |
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 |