CN116483831B - 一种分布式数据库推荐索引生成方法 - Google Patents
一种分布式数据库推荐索引生成方法 Download PDFInfo
- Publication number
- CN116483831B CN116483831B CN202310383758.7A CN202310383758A CN116483831B CN 116483831 B CN116483831 B CN 116483831B CN 202310383758 A CN202310383758 A CN 202310383758A CN 116483831 B CN116483831 B CN 116483831B
- Authority
- CN
- China
- Prior art keywords
- index
- candidate
- indexes
- field
- predicate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012795 verification Methods 0.000 claims abstract description 24
- 238000012216 screening Methods 0.000 claims abstract description 11
- 238000005457 optimization Methods 0.000 claims description 17
- 238000001914 filtration Methods 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 11
- 230000037430 deletion Effects 0.000 claims description 11
- 238000012986 modification Methods 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 11
- 238000013480 data collection Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种分布式数据库推荐索引生成方法,涉及数据库管理技术领域;筛选索引存在优化空间的SQL语句作为不健康语句,从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库。
Description
技术领域
本发明公开一种方法,涉及数据库管理技术领域,具体地说是一种分布式数据库推荐索引生成方法。
背景技术
现代数据库应用的特点是负载类型多、变化大,不同的工作负载对系统资源的分配有着不同的要求,如果不及时干预和处理,可能会导致系统宕机等不同程度的问题出现。而执行时长过长、占用内存过大的慢SQL是导致数据库压力加重的重要因素,其中索引缺失、索引建立不合理是影响SQL语句健康度的常见原因。而优化索引方案,通常是基于一些既定的简单规则分析单条SQL语句来推荐索引,另一些较为复杂的方案,则选择采用抽样或完整克隆数据的形式,在独立的数据库上建立基于开销验证的索引推荐。前者的方法过于简单,其有效性十分有限,且对不同的应用负载采取相同的推荐规则,在许多场景下实际并不适用;而基于独立数据库和开销计算的方法中,一些数据库从应用负载的每条语句出发,统计语句的种种特性,例如模式匹配、算出各查询字段、查询字段组合的出现次数等特征,再使用某些算法筛选出推荐索引,经常选择寻找最长子序列作为最优索引,这种从每条语句出发的方法在特征收集阶段需要较多开销,且许多场景下最长子序列其实并不等于最优索引,因为宽索引很可能导致数据库性能不升反降。还有一些数据库直接采用了复杂机器学习算法,例如使用神经网络进行推荐,这种方式产生的索引建议可解释性较差,且运行神经网络需要消耗相当多的资源,对硬件环境的要求较高。
发明内容
本发明针对现有技术的问题,提供一种分布式数据库推荐索引生成方法,提升了索引推荐的工作效率,保证应用的稳定性。
本发明提出的具体方案是:
本发明提供一种分布式数据库推荐索引生成方法,根据应用所在的数据库集群,获取应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象,筛选索引存在优化空间的SQL语句作为不健康语句,从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,
根据候选索引创建候选索引的DDL语句,
根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,
计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,通过数据仓库反馈并推荐候选索引给数据库节点。
进一步,所述的一种分布式数据库推荐索引生成方法中所述根据候选索引创建候选索引的DDL语句,包括:
利用DDL语句生成器基于候选索引创建候选索引的DDL语句,
通过DDL语句生成器读取候选索引中操作类型以及字段内容,所述操作类型包括创建、修改及删除,通过DDL语句生成器输出相应的创建、修改及删除索引的DDL语句。
进一步,所述的一种分布式数据库推荐索引生成方法中所述计算统计信息,包括:
获取每个候选索引对应的所有访问模式,
检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,检查其访问模式是否存在实际过滤率,若存在则使用所述实际过滤率估算候选索引的统计信息。
进一步,所述的一种分布式数据库推荐索引生成方法中所述计算统计信息后验证候选索引,包括:
验证候选索引是否能够被SQL语句所使用,
并针对提出候选索引所用的不健康语句,使用候选索引后预估数据库收益变化是否能够高于阈值。
本发明还提供一种分布式数据库推荐索引生成装置,包括数据收集模块、不健康语句分析模块、候选索引生成模块和索引验证及优化模块,
数据收集模块根据应用所在的数据库集群,获取应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象,不健康语句分析模块筛选索引存在优化空间的SQL语句作为不健康语句,候选索引生成模块从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,
候选索引生成模块根据候选索引创建候选索引的DDL语句,
候选索引生成模块根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,
索引验证及优化模块计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,通过数据仓库反馈并推荐候选索引给数据库节点。
进一步,所述的一种分布式数据库推荐索引生成装置中所述候选索引生成模块根据候选索引创建候选索引的DDL语句,包括:
利用DDL语句生成器基于候选索引创建候选索引的DDL语句,
通过DDL语句生成器读取候选索引中操作类型以及字段内容,所述操作类型包括创建、修改及删除,通过DDL语句生成器输出相应的创建、修改及删除索引的DDL语句。
进一步,所述的一种分布式数据库推荐索引生成装置中所述候选索引生成模块计算统计信息,包括:
获取每个候选索引对应的所有访问模式,
检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,检查其访问模式是否存在实际过滤率,若存在则使用所述实际过滤率估算候选索引的统计信息。
进一步,所述的一种分布式数据库推荐索引生成装置中所述索引验证及优化模块在计算统计信息后验证候选索引,包括:
验证候选索引是否能够被SQL语句所使用,
并针对提出候选索引所用的不健康语句,使用候选索引后预估数据库收益变化是否能够高于阈值。
本发明的有益之处是:
本发明提供一种分布式数据库推荐索引生成方法,从指定应用负载运行的集群上获取存在索引优化空间的不健康语句,并查找这些SQL语句所引用的数据对象及其关联的其他数据对象,从access pattern出发,直观、高效地查找与索引有关的目标谓词,并利用预设的基于目标谓词及其优先级的规则,生成并创建具有可解释性的不健康语句在其相关各表上的候选索引,在计算统计信息时,根据access pattern上谓词涉及的字段与当前候选索引字段的匹配算法,为这些候选索引提供尽可能准确的统计信息,以保证后续验证模块的可信度;创建索引后,验证模块还将确认索引能否被SQL语句所用及其收益变化,避免导致后续验证模块的冗余计算,与已有的索引推荐算法相比,从语句的access pattern出发的方式首先大大减少了单独分析每一条SQL语句的特征所带来的计算开销,而在分析过程中一次性获取语句的access pattern的所有实际过滤率,也大幅减少了反复查询算子的重复计算开销,能够加快分析速度;并且算法本身具有可解释性,能够兼顾应用负载的全局收益。除此之外,对新增推荐索引的验证则有效避免了造成后续验证模块的冗余计算,减小系统的计算压力。
附图说明
图1是本发明装置应用框架交互示意图。
具体实施方式
访问模式access pattern,是指对数据源的访问与存储进行封装,提供一个数据访问对象类负责对存储的数据进行管理和操作,并规范数据存储格式,同时描述应用如何通过查询语句访问数据。
访问模式access pattern中实际过滤率可指算子实际返回行数与实际输入行数之比。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种分布式数据库推荐索引生成方法,根据应用所在的数据库集群,获取应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象,筛选索引存在优化空间的SQL语句作为不健康语句,从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,
根据候选索引创建候选索引的DDL语句,
根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,
计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,通过数据仓库反馈并推荐候选索引给数据库节点。
本发明方法考虑全局信息的同时减少了重复计算,避免了分析每条SQL语句的字段特征带来的开销以及反复查询算子过滤率造成的开销;且access pattern能够更直观地了解用户是如何被访问的,可以直接定位真正与性能优化相关的谓词等信息,提升分析效率,通过具有可解释性的分析方法,向用户推荐对全局应用负载有益的索引。降低了对数据库管理员知识储备及经验的要求以及人力成本,并提升了推荐索引的有效性和管理人员的工作效率。
实施例1
具体应用中,基于本发明方法的技术方案,在本发明方法的实施例中,索引推荐分析使用的环境为安装数据库系统的数据库节点,数据库节点能够稳定运行索引推荐所需服务,例如应用负载画像、索引推荐、索引验证等,数据库节点连接应用所在的被监控集群,获取其应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象。
根据全部SQL语句,筛选索引存在优化空间的SQL语句作为不健康语句,从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,其中可从数据仓库收集的access pattern出发,高效地查找存在索引优化空间的不健康语句的相关谓词,筛选出运行性能与索引有关的目标谓词,预设谓词优先级和谓词组合规则,再根据每条组合规则,结合字段的cardinality,可对谓词所涉及的字段进行排序,并考虑全局收益,把不同access pattern及组合规则得到的字段组合都作为候选索引。
根据候选索引创建候选索引的DDL语句。进一步地,所述根据候选索引创建候选索引的DDL语句,包括:
利用DDL语句生成器基于候选索引创建候选索引的DDL语句,
通过DDL语句生成器读取候选索引中操作类型以及字段内容,所述操作类型包括创建、修改及删除,通过DDL语句生成器输出相应的创建、修改及删除索引的DDL语句。
根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息。进一步,所述计算统计信息,包括:
获取每个候选索引对应的所有访问模式,
检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,检查其访问模式是否存在实际过滤率,若存在则使用所述实际过滤率估算候选索引的统计信息。其中检查访问模式是否已有实际过滤率,如果有,则直接使用该过滤率,这种方法大幅减少了计算统计信息时的重复查找与计算,,并确保验证索引收益的准确性。
计算统计信息后验证候选索引。进一步,所述计算统计信息后验证候选索引,包括:
验证候选索引是否能够被SQL语句所使用,
并针对提出候选索引所用的不健康语句,使用候选索引后预估数据库收益变化是否能够高于阈值。验证通过后则将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,否则直接将候选索引删除,以避免后续验证模块中的无用计算。通过数据仓库反馈并推荐候选索引给数据库节点。
实施例2
本发明还提供一种分布式数据库推荐索引生成装置,包括数据收集模块、不健康语句分析模块、候选索引生成模块和索引验证及优化模块,
数据收集模块根据应用所在的数据库集群,获取应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象,不健康语句分析模块筛选索引存在优化空间的SQL语句作为不健康语句,候选索引生成模块从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,
候选索引生成模块根据候选索引创建候选索引的DDL语句,
候选索引生成模块根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,
索引验证及优化模块计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,通过数据仓库反馈并推荐候选索引给数据库节点。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
因此,本发明装置也从指定应用负载运行的集群上获取存在索引优化空间的不健康语句,并查找这些SQL语句所引用的数据对象及其关联的其他数据对象,从accesspattern出发,直观、高效地查找与索引有关的目标谓词,并利用预设的基于目标谓词及其优先级的规则,生成并创建具有可解释性的不健康语句在其相关各表上的候选索引,在计算统计信息时,根据access pattern上谓词涉及的字段与当前候选索引字段的匹配算法,为这些候选索引提供尽可能准确的统计信息,以保证后续验证模块的可信度;创建索引后,验证模块还将确认索引能否被SQL语句所用及其收益变化,避免导致后续验证模块的冗余计算,与已有的索引推荐算法相比,从语句的access pattern出发的方式首先大大减少了单独分析每一条SQL语句的特征所带来的计算开销,而在分析过程中一次性获取语句的access pattern的所有实际过滤率,也大幅减少了反复查询算子的重复计算开销,能够加快分析速度;并且算法本身具有可解释性,能够兼顾应用负载的全局收益。除此之外,对新增推荐索引的验证则有效避免了造成后续验证模块的冗余计算,减小系统的计算压力。
并且本发明装置建立轻量级、具有可解释性、可信度较高且对系统影响小的候选索引推荐模块,在能够进行较为准确的预估且节省资源的前提下,协助用户作出更准确地索引优化判断。
需要说明的是,上述各流程和各装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种分布式数据库推荐索引生成方法,其特征是根据应用所在的数据库集群,获取应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象,筛选索引存在优化空间的SQL语句作为不健康语句,从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,
根据候选索引创建候选索引的DDL语句,
根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,
计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,通过数据仓库反馈并推荐候选索引给数据库节点。
2.根据权利要求1所述的一种分布式数据库推荐索引生成方法,其特征是所述根据候选索引创建候选索引的DDL语句,包括:
利用DDL语句生成器基于候选索引创建候选索引的DDL语句,
通过DDL语句生成器读取候选索引中操作类型以及字段内容,所述操作类型包括创建、修改及删除,通过DDL语句生成器输出相应的创建、修改及删除索引的DDL语句。
3.根据权利要求1所述的一种分布式数据库推荐索引生成方法,其特征是所述计算统计信息,包括:
获取每个候选索引对应的所有访问模式,
检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,检查其访问模式是否存在实际过滤率,若存在则使用所述实际过滤率估算候选索引的统计信息。
4.根据权利要求1所述的一种分布式数据库推荐索引生成方法,其特征是所述计算统计信息后验证候选索引,包括:
验证候选索引是否能够被SQL语句所使用,
并针对提出候选索引所用的不健康语句,使用候选索引后预估数据库收益变化是否能够高于阈值。
5.一种分布式数据库推荐索引生成装置,其特征是包括数据收集模块、不健康语句分析模块、候选索引生成模块和索引验证及优化模块,
数据收集模块根据应用所在的数据库集群,获取应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象,不健康语句分析模块筛选索引存在优化空间的SQL语句作为不健康语句,候选索引生成模块从访问模式出发查找与不健康语句有关的谓词,并从所述谓词中筛选出数据库运行性能与索引有关的目标谓词,根据目标谓词预设谓词优先级和谓词组合规则,根据谓词优先级及谓词组合规则,获取多种字段组合,字段组合结合字段的cardinality,获得候选索引,
候选索引生成模块根据候选索引创建候选索引的DDL语句,
候选索引生成模块根据候选索引对应的所有访问模式,检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,计算其统计信息,
索引验证及优化模块计算统计信息后验证候选索引,并将验证后候选索引、应用负载所含全部SQL语句所引用的数据对象及其关联的其他数据对象发送至数据仓库,通过数据仓库反馈并推荐候选索引给数据库节点。
6.根据权利要求5所述的一种分布式数据库推荐索引生成装置,其特征是所述候选索引生成模块根据候选索引创建候选索引的DDL语句,包括:
利用DDL语句生成器基于候选索引创建候选索引的DDL语句,
通过DDL语句生成器读取候选索引中操作类型以及字段内容,所述操作类型包括创建、修改及删除,通过DDL语句生成器输出相应的创建、修改及删除索引的DDL语句。
7.根据权利要求5所述的一种分布式数据库推荐索引生成装置,其特征是所述候选索引生成模块计算统计信息,包括:
获取每个候选索引对应的所有访问模式,
检查访问模式中目标谓词涉及的字段与当前的候选索引的字段的重合情况,对于满足重合条件的字段所对应的候选索引,检查其访问模式是否存在实际过滤率,若存在则使用所述实际过滤率估算候选索引的统计信息。
8.根据权利要求5所述的一种分布式数据库推荐索引生成装置,其特征是所述索引验证及优化模块在计算统计信息后验证候选索引,包括:
验证候选索引是否能够被SQL语句所使用,
并针对提出候选索引所用的不健康语句,使用候选索引后预估数据库收益变化是否能够高于阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383758.7A CN116483831B (zh) | 2023-04-12 | 2023-04-12 | 一种分布式数据库推荐索引生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383758.7A CN116483831B (zh) | 2023-04-12 | 2023-04-12 | 一种分布式数据库推荐索引生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116483831A CN116483831A (zh) | 2023-07-25 |
CN116483831B true CN116483831B (zh) | 2024-01-30 |
Family
ID=87224364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310383758.7A Active CN116483831B (zh) | 2023-04-12 | 2023-04-12 | 一种分布式数据库推荐索引生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483831B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009385B (zh) * | 2023-09-28 | 2024-01-19 | 山东浪潮数据库技术有限公司 | 一种基于规则的数据库预计算自治系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345266B1 (en) * | 1998-12-23 | 2002-02-05 | Novell, Inc. | Predicate indexing for locating objects in a distributed directory |
US6728720B1 (en) * | 1999-07-02 | 2004-04-27 | Robert Stephen Gerard Lenzie | Identifying preferred indexes for databases |
CN104361113A (zh) * | 2014-12-01 | 2015-02-18 | 中国人民大学 | 一种内存-闪存混合存储模式下的olap查询优化方法 |
CN108170775A (zh) * | 2017-12-26 | 2018-06-15 | 上海新炬网络技术有限公司 | 一种数据库sql索引动态优化方法 |
CN111797118A (zh) * | 2019-04-03 | 2020-10-20 | 哈索普拉特纳数字工程研究有限公司 | 大型数据库系统的迭代式多属性索引选择 |
CN114064689A (zh) * | 2021-11-11 | 2022-02-18 | 华中科技大学 | 基于慢查询日志的云数据库二级索引自动推荐方法和系统 |
CN115237920A (zh) * | 2022-07-29 | 2022-10-25 | 平安科技(深圳)有限公司 | 面向负载的数据索引推荐方法及其装置、存储介质 |
-
2023
- 2023-04-12 CN CN202310383758.7A patent/CN116483831B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345266B1 (en) * | 1998-12-23 | 2002-02-05 | Novell, Inc. | Predicate indexing for locating objects in a distributed directory |
US6728720B1 (en) * | 1999-07-02 | 2004-04-27 | Robert Stephen Gerard Lenzie | Identifying preferred indexes for databases |
CN104361113A (zh) * | 2014-12-01 | 2015-02-18 | 中国人民大学 | 一种内存-闪存混合存储模式下的olap查询优化方法 |
CN108170775A (zh) * | 2017-12-26 | 2018-06-15 | 上海新炬网络技术有限公司 | 一种数据库sql索引动态优化方法 |
CN111797118A (zh) * | 2019-04-03 | 2020-10-20 | 哈索普拉特纳数字工程研究有限公司 | 大型数据库系统的迭代式多属性索引选择 |
CN114064689A (zh) * | 2021-11-11 | 2022-02-18 | 华中科技大学 | 基于慢查询日志的云数据库二级索引自动推荐方法和系统 |
CN115237920A (zh) * | 2022-07-29 | 2022-10-25 | 平安科技(深圳)有限公司 | 面向负载的数据索引推荐方法及其装置、存储介质 |
Non-Patent Citations (2)
Title |
---|
Accelerating multi-column selection predicates in main-memory – the Elf approach;David Broneske等;《IEEE》;第647-658页 * |
基于代价的慢查询优化建议;粟含;《https://tech.meituan.com/2022/04/21/slow-query-optimized-advice-driven-by-cost-model.html》;第1-23页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116483831A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10678669B2 (en) | Field content based pattern generation for heterogeneous logs | |
Du et al. | Spell: Streaming parsing of system event logs | |
CN103513983B (zh) | 用于预测性警报阈值确定工具的方法和系统 | |
US20190079993A1 (en) | Method and system for implementing efficient classification and exploration of data | |
US11755938B2 (en) | Graphical user interface indicating anomalous events | |
CN107111625B (zh) | 实现数据的高效分类和探索的方法和系统 | |
US7251584B1 (en) | Incremental detection and visualization of problem patterns and symptoms based monitored events | |
US11099842B2 (en) | Source code similarity detection using digital fingerprints | |
US20170364561A1 (en) | Telemetry data contextualized across datasets | |
Gainaru et al. | Event log mining tool for large scale HPC systems | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
Zhang et al. | Exstream: Explaining anomalies in event stream monitoring | |
CN109753596B (zh) | 用于大规模网络数据采集的信源管理与配置方法和系统 | |
CN116508019A (zh) | 用于数据库管理系统的基于学习的工作负载资源优化 | |
CN116483831B (zh) | 一种分布式数据库推荐索引生成方法 | |
CN112395333B (zh) | 用于排查数据异常的方法、装置、电子设备及存储介质 | |
CN113297057A (zh) | 内存分析方法、装置及系统 | |
CN112182025A (zh) | 日志分析方法、装置、设备与计算机可读存储介质 | |
CN113268530A (zh) | 海量异构数据采集方法、系统、计算机设备和存储介质 | |
CN115335821B (zh) | 卸载统计收集 | |
Quoc et al. | A learning approach for query planning on spatio-temporal IoT data | |
US10003492B2 (en) | Systems and methods for managing data related to network elements from multiple sources | |
US20160239264A1 (en) | Re-streaming time series data for historical data analysis | |
Li et al. | Logspy: System log anomaly detection for distributed systems | |
CN113220530B (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 |