CN116680289A - 分布式数据库索引推荐监控系统及方法 - Google Patents
分布式数据库索引推荐监控系统及方法 Download PDFInfo
- Publication number
- CN116680289A CN116680289A CN202310635760.9A CN202310635760A CN116680289A CN 116680289 A CN116680289 A CN 116680289A CN 202310635760 A CN202310635760 A CN 202310635760A CN 116680289 A CN116680289 A CN 116680289A
- Authority
- CN
- China
- Prior art keywords
- index
- indexes
- time
- total
- sql
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000008901 benefit Effects 0.000 claims abstract description 90
- 238000004458 analytical method Methods 0.000 claims abstract description 70
- 230000004048 modification Effects 0.000 claims abstract description 11
- 238000012986 modification Methods 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims abstract description 7
- 230000003044 adaptive effect Effects 0.000 claims abstract description 3
- 230000008859 change Effects 0.000 claims description 24
- 230000000694 effects Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000003631 expected effect Effects 0.000 claims description 6
- 230000014759 maintenance of location Effects 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 6
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 4
- 230000036541 health Effects 0.000 abstract description 4
- 238000007405 data analysis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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/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/245—Query processing
- G06F16/2453—Query optimisation
-
- 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)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了分布式数据库索引推荐监控系统及方法,属于分布式数据库领域,本发明要解决的技术问题为如何对分析推荐功能进行实时反馈,建立闭环索引,保证数据库索引的健康高效,采用的技术方案为:其结构包括索引分析推荐模块、索引建议修改应用模块、索引使用情况监控模块、索引使用情况分析模块、索引报告生成模块以及自适应索引建议优化模块;索引分析推荐模块用于从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益。
Description
技术领域
本发明涉及分布式数据库领域,具体地说是一种分布式数据库索引推荐监控系统及方法。
背景技术
现有技术中,在数据库索引监控方面,有些数据库如Capital One采用自动索引管理,其索引管理系统也包括索引监控,但其主要跟踪和分析的对象是查询日志,通过分析应用负载查询语句所访问的表、列、连接方式、谓词匹配以及物理执行信息等,判断访问方式是否存在优化空间。其监控指标的选择仍然是以应用负载为对象,对新推荐出来的索引缺乏针对性;有些些数据库系统采用强化学习的方式进行索引推荐,索引性能的监控跟踪作为反馈融合进训练过程,对用户来说,缺乏对数据库索引使用情况的可观展示,并且以上两种方法用户皆无法介入,导致用户无法人为的影响所推荐出的索引信息,对应用负载存在一定风险;还有一些数据库如Oracle的索引监控系统,追踪索引的使用频率、哪些语句使用索引以及索引状态,比如WATCH、KEEP、NEW、DROPPED、NEVER USED等,帮助确定更理想的索引方式、定位全表扫描的语句、研究语句执行行为等,并将移除未使用或相对无用的索引,该方法忽略了索引和SQL语句之间的关联关系,从而无法以在应用负载中权重较大的SQL语句为重点,考察索引的收益。
在应用负载的索引推荐功能中,用户根据索引推荐建议建立索引后,还需要知道该索引实际的使用情况以追踪其效果并适时做出调整,故如何对分析推荐功能进行实时反馈,建立闭环索引,保证数据库索引的健康高效是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种分布式数据库索引推荐监控系统及方法,来解决如何对分析推荐功能进行实时反馈,建立闭环索引,保证数据库索引的健康高效的问题。
本发明的技术任务是按以下方式实现的,一种分布式数据库索引推荐监控系统,该系统包括索引分析推荐模块、索引建议修改应用模块、索引使用情况监控模块、索引使用情况分析模块、索引报告生成模块以及自适应索引建议优化模块;
索引分析推荐模块用于从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益;
索引建议修改应用模块用于根据自身需要修改推荐索引,并应用索引;后期可根据索引使用情况报告酌情调整,比如禁用索引;
索引使用情况监控模块用于在Index Advisor启动时,从被监控集群获取已有的索引信息及使用情况,根据Index Advisor的建议产生的索引也会被追踪,将已有的索引和建议产生的索引分开展示,用户在监控的UI界面上查看所有索引(主要是由Index Advisor产生的索引)的使用情况,通过具体指标直观地了解Index Advisor的推荐效果;
索引使用情况分析模块用于检测被监控集群是否存在用户可能希望知道哪些索引是长期未使用的、哪些索引是创建后未能达到预期效果甚至产生负面影响的以及哪些索引可能严重影响性能需要及时处理的情况,帮助用户更快、更准确地定位需要关注或处理的索引,并在必要时向用户发送告警,建议用户及时解决索引引发的性能问题;
索引报告生成模块用于将索引使用情况报告页面按照每条索引的总收益变化百分比的降序排序,在界面上用户选择查看方式;
自适应索引建议优化模块用于根据索引使用情况和对负载的影响自适应的调节相关分析参数,生成更优的候选索引;参数包括单条SQL收益比阈值、负载整体收益比阈值、索引保留时间及单表索引最大数量。
作为优选,前端将以索引使用情况监控模块中得到的数据,在监控界面分别展示被建议的索引与自建索引的索引ID、名称、表名、字段顺序、创建时间、上次使用时间、被使用次数及累计收益,针对被建议索引,该行还会有收益明细,明细包括与之相关的每条SQL语句的列表,同样以收益降序排序;
索引使用情况监控模块可以直观地观察索引的使用情况,还会在UI界面上标出建议用户修改或删除的已有索引,方便用户基于索引的实际效果判断是否需要执行删除操作。
更优地,所述索引使用情况监控模块从自治数据仓库获得所有索引的使用情况,索引使用情况监控模块监控被应用的推荐索引和自建索引;
其中,针对推荐索引,由Index Advisor产生的索引,根据取该索引的创建时间,并查找使用了该索引的SQL语句在该创建时间前最后一次执行的耗时,创建前后的耗时差异即为索引在本次执行时的收益(结合语句重要性权重计算),统计Index Advisor配置的分析时间段内该条索引的总收益以及每条相关SQL语句累计收益的降序排列,同时收集IndexUsage的其他索引使用情况的信息,Index Usage的其他索引使用情况的信息包括使用次数及上次使用时间,最终根据索引总收益的降序展示在索引监控的UI界面上;
针对自建索引,根据索引重要性排序降序排列显示索引使用情况信息;
推荐索引和自建索引分别以列表的形式展示在监控UI界面。
更优地,索引收益具体如下:
在计算索引收益时,将索引创建时间前最后一次分析作为原始耗时计算数据,对于出现在索引所在表上的SQL语句,使用该SQL语句对应的总执行时间、总CPU花销及总执行次数,计算平均耗时,公式如下:
其中,i1表示索引;s1表示SQL语句;elapsedtimeorg为SQL执行原始耗时,totalelapsed为总执行时间,totalexec为总执行次数,cpudtimeorg为SQL语句原始CPU消耗,totalcpu为总CPU耗时;
计算索引创建后的平均耗时,遍历与索引所在表相关的SQL语句,使用对应的总执行时间、总CPU花销及总执行次数计算平均耗时,得到elapsedtimenew和timenew;
索引在单条语句上的收益变化率为创建前最后一次分析周期该条语句平均耗时与本次分析周期该条语句平均耗时的差,除以创建前最后一次分析周期该条语句平均耗时,公式如下:
索引i1的总收益为对所有n条i1相关的SQL语句(即索引i1所在表上的所有SQL语句)的平均收益与本次分析中的语句重要性权重的乘积求和,公式如下:
其中,weight(sj0=执行次数*平均执行时间or执行时间累加or CPU时间。
更优地,所述索引使用情况分析模块用于分析索引使用情况表,找到当前已存在的所有索引,判断其收益状况,标识收益没有明显提升的索引和对性能产生较大负面影响的索引,将性能较差的索引及时处理,前端UI会发送消息提示用户关注该索引。
更优地,所述索引使用情况分析模块根据每条索引的使用频率、使用该索引的语句及对应的收益、总计收益、创建时间及最后使用时间信息生成实际使用情况报告,实际使用情况报告包括该条索引的基本信息以及实际的收益状况。
作为优选,所述索引报告生成模块用于查看每张表上的索引情况或默认直接查看索引,索引报告生成模块上的每条记录展示索引的使用情况,每条记录展示索引的使用情况包括编号、所在表名、创建时间、上次使用时间、累计使用次数、相关SQL语句数量、总计收益变化百分比、相关SQL语句的收益情况(执行时间、CPU时间)及权重。
更优地,对于每条索引相关语句的收益情况,将生成其总体收益百分比、SQL语句收益变化占比环形图、占用空间变化、影响SQL数量及索引建议类型;
相关SQL语句以列表展示每条语句的内容、开销变化率、执行次数、平均执行时间及平均CPU时间。
一种分布式数据库索引推荐监控方法,该方法具体如下:
从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益;
根据自身需要修改推荐索引,并应用索引;
在Index Advisor启动时,从被监控集群获取已有的索引信息及使用情况,根据Index Advisor的建议产生的索引也会被追踪,将已有的索引和建议产生的索引分开展示,用户在监控的UI界面上查看所有索引的使用情况,通过具体指标直观地了解IndexAdvisor的推荐效果;
检测被监控集群是否存在用户可能希望知道哪些索引是长期未使用的、哪些索引是创建后未能达到预期效果甚至产生负面影响的以及哪些索引可能严重影响性能需要及时处理的情况,帮助用户更快、更准确地定位需要关注或处理的索引,并在必要时向用户发送告警,建议用户及时解决索引引发的性能问题;
将索引使用情况报告页面按照每条索引的总收益变化百分比的降序排序,在界面上用户选择查看方式;
根据索引使用情况和对负载的影响自适应的调节相关分析参数,生成更优的候选索引;参数包括单条SQL收益比阈值、负载整体收益比阈值、索引保留时间及单表索引最大数量。
作为优选,前端将以已有的索引信息及使用情况,在监控界面分别展示被建议的索引与自建索引的索引ID、名称、表名、字段顺序、创建时间、上次使用时间、被使用次数及累计收益,针对被建议索引,该行还会有收益明细,明细包括与之相关的每条SQL语句的列表,同样以收益降序排序;
在UI界面上标出建议用户修改或删除的已有索引,方便用户基于索引的实际效果判断是否需要执行删除操作;
从自治数据仓库获得所有索引的使用情况,监控被应用的推荐索引和自建索引;
其中,针对推荐索引,由Index Advisor产生的索引,根据取该索引的创建时间,并查找使用了该索引的SQL语句在该创建时间前最后一次执行的耗时,创建前后的耗时差异即为索引在本次执行时的收益,统计Index Advisor配置的分析时间段内该条索引的总收益以及每条相关SQL语句累计收益的降序排列,同时收集Index Usage的其他索引使用情况的信息,Index Usage的其他索引使用情况的信息包括使用次数及上次使用时间,最终根据索引总收益的降序展示在索引监控的UI界面上;
针对自建索引,根据索引重要性排序降序排列显示索引使用情况信息;
推荐索引和自建索引分别以列表的形式展示在监控UI界面;
其中,索引收益具体如下:
在计算索引收益时,将索引创建时间前最后一次分析作为原始耗时计算数据,对于出现在索引所在表上的SQL语句,使用该SQL语句对应的总执行时间、总CPU花销及总执行次数,计算平均耗时,公式如下:
其中,i1表示索引;s1表示SQL语句;elapsedtimeorg为SQL执行原始耗时,totalelapsed为总执行时间,totalexec为总执行次数,cpudtimeorg为SQL语句原始CPU消耗,totalcpu为总CPU耗时;
计算索引创建后的平均耗时,遍历与索引所在表相关的SQL语句,使用对应的总执行时间、总CPU花销及总执行次数计算平均耗时,得到elapsedtimenew和timenew;
索引在单条语句上的收益变化率为创建前最后一次分析周期该条语句平均耗时与本次分析周期该条语句平均耗时的差,除以创建前最后一次分析周期该条语句平均耗时,公式如下:
索引i 1的总收益为对所有n条i1相关的SQL语句的平均收益与本次分析中的语句重要性权重的乘积求和,公式如下:
其中,weight(sj)=执行次数*平均执行时间or执行时间累加or CPU时间。
本发明的分布式数据库索引推荐监控系统及方法具有以下优点:
(一)本发明从分布式数据库中提取应用负载关于索引的使用情况特征指标,通过数据分析,将这些数据最终生成索引监控反馈,以评估索引的性能和对负载的影响,并反馈给索引分析模块用以优化分析生成过程;本发明相较传统的监控手段,对推荐出来的索引的应用监控更加精准,并与结合相关SQL语句结合其在应用负载中的权重进行分析,结论直观客观且合理;
(二)本发明索引的有效性较传统监控手段增加了50%左右,通过对应用语句的分析,有效降低了数据库潜在索引问题出现的可能,帮助数据库管理员及时发现长期不用和性能较差的索引,及时止损;同时降低了对数据库管理员的要求,已经达到生产应用要求;本发明是分布式数据库负载监控的一次创新,能够减轻企业的人力成本,提高工作效率;
(三)本发明利用面向应用的多维度索引使用情况指标通过数据分析来建立索引监控闭环,保证数据库索引的健康高效;一方面,本发明的结论比传统索引监控手段更加准确,监控效率更高,比新兴的自动索引管理更加灵活可控,风险更低;另一方面,本发明降低了对数据库管理员的知识储备和能力要求,大大简化了数据库管理员以及用户的监控难度,同时提高了人员的工作效率,降低了人力成本;
(四)本发明的索引建议被采纳后,索引使用情况监控模块将持续跟踪、监控每个索引的实际使用情况,并记录其对整体应用负载所产生的影响;用户可以点击监控界面查看所有索引的使用情况,其中原有索引及根据Index Advisor建议生成的索引将分开向用户展示,并按照收益降序排;此外,索引使用情况监控模块还将向用户发送低效索引告警,提示用户及时处理长期不用或对应用负载不利的索引,方便用户及时处理止损;
(五)本发明对应用负载整体和查询语句所产生的影响将反馈给索引使用情况分析模块,反馈机制将通过正、负反馈的形式自动调整分析参数。
附图说明
下面结合附图对本发明进一步说明。
附图1为分布式数据库索引推荐监控系统的结构示意图。
具体实施方式
参照说明书附图和具体实施例对本发明的分布式数据库索引推荐监控系统及方法作以下详细地说明。
实施例1:
如附图1所示,本实施例提供了一种分布式数据库索引推荐监控系统,其结构该系统包括索引分析推荐模块、索引建议修改应用模块、索引使用情况监控模块、索引使用情况分析模块、索引报告生成模块以及自适应索引建议优化模块;
索引分析推荐模块用于从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益;
索引建议修改应用模块用于根据自身需要修改推荐索引,并应用索引;后期可根据索引使用情况报告酌情调整,比如禁用索引;
索引使用情况监控模块用于在Index Advisor启动时,从被监控集群获取已有的索引信息及使用情况,根据Index Advisor的建议产生的索引也会被追踪,将已有的索引和建议产生的索引分开展示,用户在监控的UI界面上查看所有索引(主要是由Index Advisor产生的索引)的使用情况,通过具体指标直观地了解Index Advisor的推荐效果;
索引使用情况分析模块用于检测被监控集群是否存在用户可能希望知道哪些索引是长期未使用的、哪些索引是创建后未能达到预期效果甚至产生负面影响的以及哪些索引可能严重影响性能需要及时处理的情况,帮助用户更快、更准确地定位需要关注或处理的索引,并在必要时向用户发送告警,建议用户及时解决索引引发的性能问题;
索引报告生成模块用于将索引使用情况报告页面按照每条索引的总收益变化百分比的降序排序,在界面上用户选择查看方式;
自适应索引建议优化模块用于根据索引使用情况和对负载的影响自适应的调节相关分析参数,生成更优的候选索引;参数包括单条SQL收益比阈值、负载整体收益比阈值、索引保留时间及单表索引最大数量。
本实施例中,前端将以索引使用情况监控模块中得到的数据,在监控界面分别展示被建议的索引与自建索引的索引ID、名称、表名、字段顺序、创建时间、上次使用时间、被使用次数及累计收益,针对被建议索引,该行还会有收益明细,明细包括与之相关的每条SQL语句的列表,同样以收益降序排序;
索引使用情况监控模块可以直观地观察索引的使用情况,还会在UI界面上标出建议用户修改或删除的已有索引,方便用户基于索引的实际效果判断是否需要执行删除操作。
本实施例中的索引使用情况监控模块从自治数据仓库获得所有索引的使用情况,索引使用情况监控模块监控被应用的推荐索引和自建索引;
其中,针对推荐索引,由Index Advisor产生的索引,根据取该索引的创建时间,并查找使用了该索引的SQL语句在该创建时间前最后一次执行的耗时,创建前后的耗时差异即为索引在本次执行时的收益(结合语句重要性权重计算),统计Index Advisor配置的分析时间段内该条索引的总收益以及每条相关SQL语句累计收益的降序排列,同时收集IndexUsage的其他索引使用情况的信息,Index Usage的其他索引使用情况的信息包括使用次数及上次使用时间,最终根据索引总收益的降序展示在索引监控的UI界面上;
针对自建索引,根据索引重要性排序降序排列显示索引使用情况信息;
推荐索引和自建索引分别以列表的形式展示在监控UI界面。
本实施例中,索引收益具体如下:
在计算索引收益时,将索引创建时间前最后一次分析作为原始耗时计算数据,对于出现在索引所在表上的SQL语句,使用该SQL语句对应的总执行时间、总CPU花销及总执行次数,计算平均耗时,公式如下:
其中,i1表示索引;s1表示SQL语句;elapsedtimeorg为SQL执行原始耗时,totalelapsed为总执行时间,totalexec为总执行次数,cpudtimeorg为SQL语句原始CPU消耗,totalcpu为总CPU耗时;
计算索引创建后的平均耗时,遍历与索引所在表相关的SQL语句,使用对应的总执行时间、总CPU花销及总执行次数计算平均耗时,得到elapsedtimenew和timenew;
索引在单条语句上的收益变化率为创建前最后一次分析周期该条语句平均耗时与本次分析周期该条语句平均耗时的差,除以创建前最后一次分析周期该条语句平均耗时,公式如下:
索引i1的总收益为对所有n条i1相关的SQL语句(即索引i1所在表上的所有SQL语句)的平均收益与本次分析中的语句重要性权重的乘积求和,公式如下:
其中,weight(sj)=执行次数*平均执行时间or执行时间累加or CPU时间。
本实施例中的索引使用情况分析模块用于分析索引使用情况表,找到当前已存在的所有索引,判断其收益状况,标识收益没有明显提升的索引和对性能产生较大负面影响的索引,将性能较差的索引及时处理,前端UI会发送消息提示用户关注该索引。
本实施例中的索引使用情况分析模块根据每条索引的使用频率、使用该索引的语句及对应的收益、总计收益、创建时间及最后使用时间信息生成实际使用情况报告,实际使用情况报告包括该条索引的基本信息以及实际的收益状况。
本实施例中的索引报告生成模块用于查看每张表上的索引情况或默认直接查看索引,索引报告生成模块上的每条记录展示索引的使用情况,每条记录展示索引的使用情况包括编号、所在表名、创建时间、上次使用时间、累计使用次数、相关SQL语句数量、总计收益变化百分比、相关SQL语句的收益情况(执行时间、CPU时间)及权重。
本实施例中,对于每条索引相关语句的收益情况,将生成其总体收益百分比、SQL语句收益变化占比环形图、占用空间变化、影响SQL数量及索引建议类型;
相关SQL语句以列表展示每条语句的内容、开销变化率、执行次数、平均执行时间及平均CPU时间。
实施例2:
本实施例提供了一种分布式数据库索引推荐监控方法,该方法具体如下:
S1、从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益;
S2、根据自身需要修改推荐索引,并应用索引;
S3、在Index Advisor启动时,从被监控集群获取已有的索引信息及使用情况,根据Index Advisor的建议产生的索引也会被追踪,将已有的索引和建议产生的索引分开展示,用户在监控的UI界面上查看所有索引的使用情况,通过具体指标直观地了解IndexAdvisor的推荐效果;
S4、检测被监控集群是否存在用户可能希望知道哪些索引是长期未使用的、哪些索引是创建后未能达到预期效果甚至产生负面影响的以及哪些索引可能严重影响性能需要及时处理的情况,帮助用户更快、更准确地定位需要关注或处理的索引,并在必要时向用户发送告警,建议用户及时解决索引引发的性能问题;
S5、将索引使用情况报告页面按照每条索引的总收益变化百分比的降序排序,在界面上用户选择查看方式;
S6、根据索引使用情况和对负载的影响自适应的调节相关分析参数,生成更优的候选索引;参数包括单条SQL收益比阈值、负载整体收益比阈值、索引保留时间及单表索引最大数量。
本实施例中,前端将以已有的索引信息及使用情况,在监控界面分别展示被建议的索引与自建索引的索引ID、名称、表名、字段顺序、创建时间、上次使用时间、被使用次数及累计收益,针对被建议索引,该行还会有收益明细,明细包括与之相关的每条SQL语句的列表,同样以收益降序排序;
在UI界面上标出建议用户修改或删除的已有索引,方便用户基于索引的实际效果判断是否需要执行删除操作;
从自治数据仓库获得所有索引的使用情况,监控被应用的推荐索引和自建索引;
其中,针对推荐索引,由Index Advisor产生的索引,根据取该索引的创建时间,并查找使用了该索引的SQL语句在该创建时间前最后一次执行的耗时,创建前后的耗时差异即为索引在本次执行时的收益,统计Index Advisor配置的分析时间段内该条索引的总收益以及每条相关SQL语句累计收益的降序排列,同时收集Index Usage的其他索引使用情况的信息,Index Usage的其他索引使用情况的信息包括使用次数及上次使用时间,最终根据索引总收益的降序展示在索引监控的UI界面上;
针对自建索引,根据索引重要性排序降序排列显示索引使用情况信息;
推荐索引和自建索引分别以列表的形式展示在监控UI界面;
其中,索引收益具体如下:
在计算索引收益时,将索引创建时间前最后一次分析作为原始耗时计算数据,对于出现在索引所在表上的SQL语句,使用该SQL语句对应的总执行时间、总CPU花销及总执行次数,计算平均耗时,公式如下:
其中,i1表示索引;s1表示SQL语句;elapsedtimeorg为SQL执行原始耗时,totalelapsed为总执行时间,totalexec为总执行次数,cpudtimeorg为SQL语句原始CPU消耗,totalcpu为总CPU耗时;
计算索引创建后的平均耗时,遍历与索引所在表相关的SQL语句,使用对应的总执行时间、总CPU花销及总执行次数计算平均耗时,得到elapsedtimenew和timenew;
索引在单条语句上的收益变化率为创建前最后一次分析周期该条语句平均耗时与本次分析周期该条语句平均耗时的差,除以创建前最后一次分析周期该条语句平均耗时,公式如下:
索引i 1的总收益为对所有n条i1相关的SQL语句的平均收益与本次分析中的语句重要性权重的乘积求和,公式如下:
其中,weight(sj)=执行次数*平均执行时间or执行时间累加or CPU时间。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种分布式数据库索引推荐监控系统,其特征在于,该系统包括索引分析推荐模块、索引建议修改应用模块、索引使用情况监控模块、索引使用情况分析模块、索引报告生成模块以及自适应索引建议优化模块;
索引分析推荐模块用于从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益;
索引建议修改应用模块用于根据自身需要修改推荐索引,并应用索引;
索引使用情况监控模块用于在Index Advisor启动时,从被监控集群获取已有的索引信息及使用情况,根据Index Advisor的建议产生的索引也会被追踪,将已有的索引和建议产生的索引分开展示,用户在监控的UI界面上查看所有索引的使用情况,通过具体指标直观地了解Index Advisor的推荐效果;
索引使用情况分析模块用于检测被监控集群是否存在用户可能希望知道哪些索引是长期未使用的、哪些索引是创建后未能达到预期效果甚至产生负面影响的以及哪些索引可能严重影响性能需要及时处理的情况,帮助用户更快、更准确地定位需要关注或处理的索引,并在必要时向用户发送告警,建议用户及时解决索引引发的性能问题;
索引报告生成模块用于将索引使用情况报告页面按照每条索引的总收益变化百分比的降序排序,在界面上用户选择查看方式;
自适应索引建议优化模块用于根据索引使用情况和对负载的影响自适应的调节相关分析参数,生成更优的候选索引;参数包括单条SQL收益比阈值、负载整体收益比阈值、索引保留时间及单表索引最大数量。
2.根据权利要求1所述的分布式数据库索引推荐监控系统,其特征在于,前端将以索引使用情况监控模块中得到的数据,在监控界面分别展示被建议的索引与自建索引的索引ID、名称、表名、字段顺序、创建时间、上次使用时间、被使用次数及累计收益,针对被建议索引,该行还会有收益明细,明细包括与之相关的每条SQL语句的列表,同样以收益降序排序;
索引使用情况监控模块在UI界面上标出建议用户修改或删除的已有索引,方便用户基于索引的实际效果判断是否需要执行删除操作。
3.根据权利要求1或2所述的分布式数据库索引推荐监控系统,其特征在于,所述索引使用情况监控模块从自治数据仓库获得所有索引的使用情况,索引使用情况监控模块监控被应用的推荐索引和自建索引;
其中,针对推荐索引,由Index Advisor产生的索引,根据取该索引的创建时间,并查找使用了该索引的SQL语句在该创建时间前最后一次执行的耗时,创建前后的耗时差异即为索引在本次执行时的收益,统计Index Advisor配置的分析时间段内该条索引的总收益以及每条相关SQL语句累计收益的降序排列,同时收集Index Usage的其他索引使用情况的信息,Index Usage的其他索引使用情况的信息包括使用次数及上次使用时间,最终根据索引总收益的降序展示在索引监控的UI界面上;
针对自建索引,根据索引重要性排序降序排列显示索引使用情况信息;
推荐索引和自建索引分别以列表的形式展示在监控UI界面。
4.根据权利要求3所述的分布式数据库索引推荐监控系统,其特征在于,索引收益具体如下:
在计算索引收益时,将索引创建时间前最后一次分析作为原始耗时计算数据,对于出现在索引所在表上的SQL语句,使用该SQL语句对应的总执行时间、总CPU花销及总执行次数,计算平均耗时,公式如下:
其中,i1表示索引;s1表示SQL语句;elapsedtimeorg为SQL执行原始耗时,totalelapsed为总执行时间,totalexec为总执行次数,cpudtimeorg为SQL语句原始CPU消耗,totalcpu为总CPU耗时;
计算索引创建后的平均耗时,遍历与索引所在表相关的SQL语句,使用对应的总执行时间、总CPU花销及总执行次数计算平均耗时,得到elapsedtimenew和timenew;
索引在单条语句上的收益变化率为创建前最后一次分析周期该条语句平均耗时与本次分析周期该条语句平均耗时的差,除以创建前最后一次分析周期该条语句平均耗时,公式如下:
索引i 1的总收益为对所有n条i1相关的SQL语句的平均收益与本次分析中的语句重要性权重的乘积求和,公式如下:
其中,weight(sj)=执行次数*平均执行时间or执行时间累加or CPU时间。
5.根据权利要求4所述的分布式数据库索引推荐监控系统,其特征在于,所述索引使用情况分析模块用于分析索引使用情况表,找到当前已存在的所有索引,判断其收益状况,标识收益没有明显提升的索引和对性能产生较大负面影响的索引,将性能较差的索引及时处理,前端UI会发送消息提示用户关注该索引。
6.根据权利要求5所述的分布式数据库索引推荐监控系统,其特征在于,所述索引使用情况分析模块根据每条索引的使用频率、使用该索引的语句及对应的收益、总计收益、创建时间及最后使用时间信息生成实际使用情况报告,实际使用情况报告包括该条索引的基本信息以及实际的收益状况。
7.根据权利要求1所述的分布式数据库索引推荐监控系统,其特征在于,所述索引报告生成模块用于查看每张表上的索引情况或默认直接查看索引,索引报告生成模块上的每条记录展示索引的使用情况,每条记录展示索引的使用情况包括编号、所在表名、创建时间、上次使用时间、累计使用次数、相关SQL语句数量、总计收益变化百分比、相关SQL语句的收益情况及权重。
8.根据权利要求7所述的分布式数据库索引推荐监控系统,其特征在于,对于每条索引相关语句的收益情况,将生成其总体收益百分比、SQL语句收益变化占比环形图、占用空间变化、影响SQL数量及索引建议类型;
相关SQL语句以列表展示每条语句的内容、开销变化率、执行次数、平均执行时间及平均CPU时间。
9.一种分布式数据库索引推荐监控方法,其特征在于,该方法具体如下:
从不健康语句出发,检查相关的表、access pattern、谓词种类及相关字段,依照候选索引生成算法提出基于每条SQL语句的候选索引;完成产生需要创建的候选索引后,将通过两步验证其有效性;其中,两步验证具体是指验证索引在单条SQL语句上的收益和验证索引在应用负载整体所有受影响语句的收益;
根据自身需要修改推荐索引,并应用索引;
在Index Advisor启动时,从被监控集群获取已有的索引信息及使用情况,根据IndexAdvisor的建议产生的索引也会被追踪,将已有的索引和建议产生的索引分开展示,用户在监控的UI界面上查看所有索引的使用情况,通过具体指标直观地了解Index Advisor的推荐效果;
检测被监控集群是否存在用户可能希望知道哪些索引是长期未使用的、哪些索引是创建后未能达到预期效果甚至产生负面影响的以及哪些索引可能严重影响性能需要及时处理的情况,帮助用户更快、更准确地定位需要关注或处理的索引,并在必要时向用户发送告警,建议用户及时解决索引引发的性能问题;
将索引使用情况报告页面按照每条索引的总收益变化百分比的降序排序,在界面上用户选择查看方式;
根据索引使用情况和对负载的影响自适应的调节相关分析参数,生成更优的候选索引;参数包括单条SQL收益比阈值、负载整体收益比阈值、索引保留时间及单表索引最大数量。
10.根据权利要求9所述的分布式数据库索引推荐监控方法,其特征在于,前端将以已有的索引信息及使用情况,在监控界面分别展示被建议的索引与自建索引的索引ID、名称、表名、字段顺序、创建时间、上次使用时间、被使用次数及累计收益,针对被建议索引,该行还会有收益明细,明细包括与之相关的每条SQL语句的列表,同样以收益降序排序;
在UI界面上标出建议用户修改或删除的已有索引,方便用户基于索引的实际效果判断是否需要执行删除操作;
从自治数据仓库获得所有索引的使用情况,监控被应用的推荐索引和自建索引;
其中,针对推荐索引,由Index Advisor产生的索引,根据取该索引的创建时间,并查找使用了该索引的SQL语句在该创建时间前最后一次执行的耗时,创建前后的耗时差异即为索引在本次执行时的收益,统计Index Advisor配置的分析时间段内该条索引的总收益以及每条相关SQL语句累计收益的降序排列,同时收集Index Usage的其他索引使用情况的信息,Index Usage的其他索引使用情况的信息包括使用次数及上次使用时间,最终根据索引总收益的降序展示在索引监控的UI界面上;
针对自建索引,根据索引重要性排序降序排列显示索引使用情况信息;
推荐索引和自建索引分别以列表的形式展示在监控UI界面;
其中,索引收益具体如下:
在计算索引收益时,将索引创建时间前最后一次分析作为原始耗时计算数据,对于出现在索引所在表上的SQL语句,使用该SQL语句对应的总执行时间、总CPU花销及总执行次数,计算平均耗时,公式如下:
其中,i1表示索引;s1表示SQL语句;elapsedtimeorg为SQL执行原始耗时,totalelapsed为总执行时间,totalexec为总执行次数,cpudtimeorg为SQL语句原始CPU消耗,totalcpu为总CPU耗时;
计算索引创建后的平均耗时,遍历与索引所在表相关的SQL语句,使用对应的总执行时间、总CPU花销及总执行次数计算平均耗时,得到elapsedtimenew和timenew;
索引在单条语句上的收益变化率为创建前最后一次分析周期该条语句平均耗时与本次分析周期该条语句平均耗时的差,除以创建前最后一次分析周期该条语句平均耗时,公式如下:
索引i 1的总收益为对所有n条i1相关的SQL语句的平均收益与本次分析中的语句重要性权重的乘积求和,公式如下:
其中,weight(sj)=执行次数*平均执行时间or执行时间累加or CPU时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310635760.9A CN116680289A (zh) | 2023-05-31 | 2023-05-31 | 分布式数据库索引推荐监控系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310635760.9A CN116680289A (zh) | 2023-05-31 | 2023-05-31 | 分布式数据库索引推荐监控系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680289A true CN116680289A (zh) | 2023-09-01 |
Family
ID=87778510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310635760.9A Pending CN116680289A (zh) | 2023-05-31 | 2023-05-31 | 分布式数据库索引推荐监控系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680289A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573680A (zh) * | 2024-01-17 | 2024-02-20 | 深圳市进择科技有限公司 | 一种基于大数据的定位数据传输管理系统及方法 |
-
2023
- 2023-05-31 CN CN202310635760.9A patent/CN116680289A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573680A (zh) * | 2024-01-17 | 2024-02-20 | 深圳市进择科技有限公司 | 一种基于大数据的定位数据传输管理系统及方法 |
CN117573680B (zh) * | 2024-01-17 | 2024-04-12 | 深圳市进择科技有限公司 | 一种基于大数据的定位数据传输管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8812481B2 (en) | Management of interesting database statistics | |
US9720941B2 (en) | Fully automated SQL tuning | |
Xia et al. | Modeling and optimizing maintenance schedule for energy systems subject to degradation | |
WO2017183065A1 (ja) | リレーショナルデータベースのチューニング装置及び方法 | |
WO2021248690A1 (zh) | 光通道性能劣化智能预警方法、装置、设备及存储介质 | |
CN104778185B (zh) | 异常结构化查询语言sql语句确定方法及服务器 | |
CN102955841A (zh) | 用于在复杂事件处理环境中预测事件流的未来行为的方法和/或装置 | |
JP2013519941A (ja) | eコマーストランザクションデータ会計のための方法およびシステム | |
CN111127105A (zh) | 用户分层模型构建方法及系统、运营分析方法及系统 | |
US11593334B2 (en) | Physical database design and tuning with deep reinforcement learning | |
CN103929759B (zh) | 一种基于病历的移动网网络优化方法及网络优化系统 | |
CN108369550B (zh) | 实时更改来自不同源的数据 | |
CN116680289A (zh) | 分布式数据库索引推荐监控系统及方法 | |
CN103309894A (zh) | 基于用户属性的搜索实现方法及系统 | |
CN115688016A (zh) | 一种用于大型数据库智能运维的一体化方法 | |
CN109871368A (zh) | 数据库检测方法、装置、计算机装置及存储介质 | |
CN117194919A (zh) | 一种生产数据分析系统 | |
CN117524374A (zh) | 一种产品生态过程的环境影响评估系统和装置 | |
CN110659747B (zh) | 一种基于工艺落实与成本管控的车辆检修方法及系统 | |
CN116090702B (zh) | 一种基于物联网的erp数据智能监管系统及方法 | |
El-Helw et al. | Collecting and maintaining just-in-time statistics | |
CN109947615A (zh) | 分布式系统的监控方法和装置 | |
CN104391976A (zh) | 社交对象的推荐方法和装置 | |
Thiem et al. | An integrated approach to performance monitoring for autonomous tuning | |
RU133632U1 (ru) | Автоматизированная система "монитор руководителя" информационной и аналитической поддержки принятия решений в сфере авиаперевозок |
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 |