CN112346950B - 基于查询日志分析的数据库索引性能估计系统与方法 - Google Patents
基于查询日志分析的数据库索引性能估计系统与方法 Download PDFInfo
- Publication number
- CN112346950B CN112346950B CN202011400842.8A CN202011400842A CN112346950B CN 112346950 B CN112346950 B CN 112346950B CN 202011400842 A CN202011400842 A CN 202011400842A CN 112346950 B CN112346950 B CN 112346950B
- Authority
- CN
- China
- Prior art keywords
- database
- information
- module
- log
- performance
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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/217—Database tuning
-
- 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
- G06F16/2272—Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于查询日志分析的数据库索引性能估计系统与方法,涉及数据库技术领域。本系统包括日志收集模块,日志分析模块,数据库信息采集模块,索引性能计算模型,数据库定期监控模块;通过一个索引性能估计方法来监控数据库生成的查询日志,然后对查询日志进行解析,然后用其中的查询日志分析处理模块对其进行分析,同时和数据库管理系统进行整合,持续监控数据库,实现对索引的性能持续估计。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种基于查询日志分析的数据库索引性能估计系统与方法。
背景技术
数据库系统在计算机领域属于基础架构之一,在实际应用中发挥的作用越来越大。随着业务的发展和数据库的广泛应用,数据库需要能够提供更快的速度来支撑应用的运行,索引作为数据库系统中十分重要的一环对数据库性能提升发挥了举足轻重的作用。
数据库索引是存储在磁盘上的物理结构,建立在数据库表的原始数据之上,通过建立合适的索引可以显著的提高服务器的性能。
数据库承载的业务具有多样性,导致索引也会有多样性,在数据库性能调优中选择合适的索引的复杂度越来越高,如何衡量索引的代价从而在不同的索引中选择合适的索引是数据库管理员的一份十分重要的任务,合适的索引代价估计方法会极大的辅助数据库管理员的工作。
对索引构建目前的研究提出了一些方案,这些方案可以在一定帮助提供提高数据库的运行性能,同时能够给数据库管理员提供必要的指导,但是这些方案并不具有灵活性以及通用性,同时不能够准确反映其代价变化,尤其是当数据库承载的业务环境发生变化的情况下。同时索引的性能估计分为两个部分:1)索引带来性能的优化提升,2)不恰当的索引也会带来给系统带来额外的性能负担。当前的代价估计不能很好的考虑这两方面,一般只注重其带来的优化部分,而不考虑其可能额外负担,因此在应用中很可能出现性能负担超过优化提升,从而产生负优化效果。
发明内容
针对现有技术的不足,本发明提供一种基于查询日志分析的数据库索引性能估计系统与方法,通过一个索引性能估计方法来监控数据库生成的查询日志,然后对查询日志进行解析,然后用其中的查询日志分析处理模块对其进行分析,同时和数据库管理系统进行整合,持续监控数据库,实现对索引的性能持续估计。
为解决上述技术问题,本发明所采取的技术方案是:
一方面,一种基于查询日志分析的数据库索引性能估计系统,包括日志收集模块,日志分析模块,数据库信息采集模块,索引性能计算模型,数据库定期监控模块;
所述日志收集模块负责开启数据库的日志生成功能,在用户的要求下收集数据库生成的日志,同时将生成的日志分发给日志分析模块进行处理;
所述日志分析模块将数据库生成的日志进行查询模板化处理,然后按照不同查询模板对数据库生成的日志进行分类,同时记录每个查询模板类别的频率信息,频率信息定义为能够分类为此类别的语句在收集到的查询日志中的数量;分类方法以查询模板为基准,日志分析模块针对每个类别按照用户指定的比例随机抽取语句,并计算每个语句的行数信息,然后按类别分别求和,将求和结果除以抽取语句的行数信息获得平均值,将平均值和类别进行绑定,针对每一个类别,保证采样条数除以类别频率为同一定值,日志分析模块将产生的平均值和类别分析数据分发给索引性能计算模块;
所述数据库信息采集模块通过和数据库进行交互,获取数据库信息,所述数据库信息包括数据库的表名信息,列名信息,表格大小信息,然后根据表格大小信息分别赋予每个表格权重信息,表格大小按照从小到大的顺序进行排列,将最小的表格权重设置为1,其他表格权重的设置方法为分别用当前表格大小除以最小表格大小;
所述索引性能计算模块根据日志分析模块发送的分析数据和数据库信息采集模块的表名信息、列名信息、表格大小信息以及上文所述权重信息计算索引的性能信息;
所述数据库定期监控模块对数据库进行定期监控从而更新索引性能估计,监控模块调用日志收集模块,日志分析模块,数据库信息采集模块和数据性性能分析模块进行索引性能估计结果更新,同时数据库定期监控模块监控计算机服务器CPU和磁盘性能波动,将结果反馈给用户,用户设置间隔时间,设定监控模块进行重写索引性能分析,当数据库监控到CPU和磁盘性能发生了性能波动则主动进行性能分析;
另一方面,一种基于查询日志分析的数据库索引性能估计方法,基于前述一种基于查询日志分析的数据库索引性能估计系统实现,包括以下步骤:
步骤1:将索引性能估计系统部署至计算机业务数据库服务器环境,并开启服务器的数据库日志生成功能;
步骤2:启动索引性能计算模型系统进入初始运行状态;
步骤3:日志收集模块收集数据库系统生成的日志数据,并将日志数据保存到由用户指定的磁盘位置;
步骤4:日志分析模块对收集到日志进行分析,包括频率统计,语句采样,条数统计,语句分类;
步骤5:数据库信息采集模块进行信息采集,包括表名,列名,大小信息,然后根据大小分别计算权重信息;
步骤6:索引性能计算模块进行信息计算性能估计计算;
步骤7:将计算结果反馈给用户;
步骤8:系统中的监控模块根据用户设定定期进行分析,或者根据CPU和磁盘性能波动主动进行分析,并将信息返回给用户。
采用上述技术方案所产生的有益效果在于:
本发明提出了一种基于查询日志分析的数据库索引性能估计方法。索引在数据库性能优化中起到关键作用,其在应用的过程中会对系统性能产生增益或者损耗效果,通过此估计方法能够评估索引可以给数据库带来的性能影响,辅助用户进行数据库索引的配置,从而帮助提高数据库的处理性能。
附图说明
图1为本发明实施例数据库索引性能估计系统架构图;
图2为本发明实施例数据库索引性能估计方法流程图;
图3为本发明实施例MySQL数据库具体实施流程图;
图4为本发明实施例测试性能结果图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一方面,一种基于查询日志分析的数据库索引性能估计系统,如图1所示,包括日志收集模块,日志分析模块,数据库信息采集模块,索引性能计算模型,数据库定期监控模块;
所述日志收集模块负责开启数据库的日志生成功能,在用户的要求下收集数据库生成的日志,同时将生成的日志分发给日志分析模块进行处理;
所述日志分析模块将数据库生成的日志进行查询模板化处理,然后按照不同查询模板对数据库生成的日志进行分类,同时记录每个查询模板类别的频率信息,频率信息定义为能够分类为此类别的语句在收集到的查询日志中的数量;分类方法以查询模板为基准,日志分析模块针对每个类别按照用户指定的比例随机抽取语句,并计算每个语句的行数信息,然后按类别分别求和,将求和结果除以抽取语句的行数信息获得平均值,将平均值和类别进行绑定,针对每一个类别,保证采样条数除以类别频率为同一定值,日志分析模块将产生的平均值和类别分析数据分发给索引性能计算模块;
所述数据库信息采集模块通过和数据库进行交互,获取数据库信息,所述数据库信息包括数据库的表名信息,列名信息,表格大小信息,然后根据表格大小信息分别赋予每个表格权重信息,表格大小按照从小到大的顺序进行排列,将最小的表格权重设置为1,其他表格权重的设置方法为分别用当前表格大小除以最小表格大小;
所述索引性能计算模块根据日志分析模块发送的分析数据和数据库信息采集模块的表名信息、列名信息、表格大小信息以及上文所述权重信息计算索引的性能信息;性能的计算方式如下:
针对要估计性能的索引取出其中一个索引I,从日志分析模块找到每一个和此条索引相关的类别i以及其对应的频率Pi,行数求和平均结果Si,查找方式按列名查找,如果索引和类别具有部分或者全部列名匹配,则代表查找成功。如果类别为对应的插入语句,将Pi设置为其相反数,即Pi=-Pi,然后针对每个类别i分别计算Pi*Si,然后将所有涉及的类别结果进行相加求和记为C;
针对索引I,从数据库信息采集模块中获取当前索引涉及到的表以及其对应的权重W,查找方式按列名查找,如果索引和类别具有部分或者全部列名匹配,则代表查找成功。然后和上面获得的C进行乘积运算获得B,即B=W*C;B即为对当前INDEX估计的性能。
如果B为负值,则代表产生了负优化,正值代表有性能提升帮助,0代表无作用。
所述数据库定期监控模块对数据库进行定期监控从而更新索引性能估计,因为数据库业务可能不断变化,因此索引性能估计结果需要不断的进行调整,数据库定期监控模块会根据用户指定的间隔定期的对数据库进行分析,监控模块调用日志收集模块,日志分析模块,数据库信息采集模块和数据性性能分析模块进行索引性能估计结果更新,同时数据库定期监控模块监控计算机服务器CPU和磁盘性能波动,将结果反馈给用户,用户设置间隔时间,设定监控模块进行重写索引性能分析,当数据库监控到CPU和磁盘性能发生了性能波动则主动进行性能分析;
另一方面,一种基于查询日志分析的数据库索引性能估计方法,基于前述一种基于查询日志分析的数据库索引性能估计系统实现,如图2所示,包括以下步骤:
步骤1:将索引性能估计系统部署至计算机业务数据库服务器环境,并开启服务器的数据库日志生成功能;
步骤2:启动索引性能计算模型系统进入初始运行状态;
步骤3:日志收集模块收集数据库系统生成的日志数据,并将日志数据保存到由用户指定的磁盘位置;
步骤4:日志分析模块对收集到日志进行分析,包括频率统计,语句采样,条数统计,语句分类;
步骤5:数据库信息采集模块进行信息采集,包括表名,列名,大小信息,然后根据大小分别计算权重信息;
步骤6:索引性能计算模块进行信息计算性能估计计算;
步骤7:将计算结果反馈给用户;
步骤8:系统中的监控模块根据用户设定定期进行分析,或者根据CPU和磁盘性能波动主动进行分析,并将信息返回给用户
将当前方法运用于在云数据库服务器上面的业务,为了提高数据库的性能,加速业务的响应速度,需要给数据库创建一定的索引,此时通过开启数据库日志生成功能,然后采用上面的方法来对索引性能进行估计,从而获得相关索引效益,避免恶化性能的负效益索引的创建的同时指导数据库创建带来性能提升的正效应索引,从而提高了云数据库服务器的性能。
本实施例中使用平台为MySQL数据库,是当前常用的数据库,在服务器上使用MySQL数据库,并开启MySQL数据库的general log功能,然后应用上述方法来进行索引分析,然后通过JDBC方式来将索引传递给MySQL数据库,帮助提高其性能,MySQL数据库具体实施流程图如图3所示;
通过设置测试数据在云服务上面进行上述方法在数据库上的效果测试。分别用数据库生成不同增删改查比例的查询日志,然后针对不同比例下的查询日志分别应用上述方法对数据库进行索引配置,查看应用配置前后的数据库性能变化,如图4所示为相应的结果:
从图4可以看出,通过采用上述方法所产生的结果(调优后)与基准数据进行对比明显提高了数据库性能,同时在不同的查询(select)占日志比例下都取得了较好的结果。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (2)
1.一种基于查询日志分析的数据库索引性能估计系统,其特征在于:包括日志收集模块,日志分析模块,数据库信息采集模块,索引性能计算模型,数据库定期监控模块;
所述日志收集模块负责开启数据库的日志生成功能,在用户的要求下收集数据库生成的日志,同时将生成的日志分发给日志分析模块进行处理;
所述日志分析模块将数据库生成的日志进行查询模板化处理,然后按照不同查询模板对数据库生成的日志进行分类,同时记录每个查询模板类别的频率信息,频率信息定义为能够分类为此类别的语句在收集到的查询日志中的数量;分类方法以查询模板为基准,日志分析模块针对每个类别按照用户指定的比例随机抽取语句,并计算每个语句的行数信息,然后按类别分别求和,将求和结果除以抽取语句的行数信息获得平均值,将平均值和类别进行绑定,针对每一个类别,保证采样条数除以类别频率为同一定值,日志分析模块将产生的平均值和类别分析数据分发给索引性能计算模块;
所述数据库信息采集模块通过和数据库进行交互,获取数据库信息;
所述数据库信息包括数据库的表名信息,列名信息,表格大小信息,然后根据表格大小信息分别赋予每个表格权重信息,表格大小按照从小到大的顺序进行排列,将最小的表格权重设置为1,其他表格权重的设置方法为分别用当前表格大小除以最小表格大小;
所述索引性能计算模块根据日志分析模块发送的分析数据和数据库信息采集模块的表名信息、列名信息、表格大小信息以及上文所述权重信息计算索引的性能信息;
所述数据库定期监控模块对数据库进行定期监控从而更新索引性能估计,监控模块调用日志收集模块,日志分析模块,数据库信息采集模块和数据性性能分析模块进行索引性能估计结果更新,同时数据库定期监控模块监控计算机服务器CPU和磁盘性能波动,将结果反馈给用户,用户设置间隔时间,设定监控模块进行重写索引性能分析,当数据库监控到CPU和磁盘性能发生了性能波动则主动进行性能分析。
2.一种基于查询日志分析的数据库索引性能估计方法,根据权利要求1所述的一种基于查询日志分析的数据库索引性能估计系统实现,其特征在于,包括以下步骤:
步骤1:将索引性能估计系统部署至计算机业务数据库服务器环境,并开启服务器的数据库日志生成功能;
步骤2:启动索引性能计算模型系统进入初始运行状态;
步骤3:日志收集模块收集数据库系统生成的日志数据,并将日志数据保存到由用户指定的磁盘位置;
步骤4:日志分析模块对收集到日志进行分析,包括频率统计,语句采样,条数统计,语句分类;
步骤5:数据库信息采集模块进行信息采集,包括表名,列名,大小信息,然后根据大小分别计算权重信息;
步骤6:索引性能计算模块进行信息计算性能估计计算;
步骤7:将计算结果反馈给用户;
步骤8:系统中的监控模块根据用户设定定期进行分析,或者根据CPU和磁盘性能波动主动进行分析,并将信息返回给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011400842.8A CN112346950B (zh) | 2020-12-04 | 2020-12-04 | 基于查询日志分析的数据库索引性能估计系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011400842.8A CN112346950B (zh) | 2020-12-04 | 2020-12-04 | 基于查询日志分析的数据库索引性能估计系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112346950A CN112346950A (zh) | 2021-02-09 |
CN112346950B true CN112346950B (zh) | 2022-07-22 |
Family
ID=74428011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011400842.8A Active CN112346950B (zh) | 2020-12-04 | 2020-12-04 | 基于查询日志分析的数据库索引性能估计系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112346950B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590572B (zh) * | 2021-07-21 | 2022-10-18 | 用友汽车信息科技(上海)股份有限公司 | 日志查看方法、装置、电子设备和可读存储介质 |
CN113839952B (zh) * | 2021-09-27 | 2023-07-14 | 深信服科技股份有限公司 | 一种日志访问关系的威胁追踪方法、装置及电子设备 |
CN114398378B (zh) * | 2022-03-25 | 2022-11-01 | 北京奥星贝斯科技有限公司 | 确定索引代价的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844497A (zh) * | 2016-12-26 | 2017-06-13 | 努比亚技术有限公司 | 一种数据库代码的检查装置和方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461060B2 (en) * | 2005-10-04 | 2008-12-02 | International Business Machines Corporation | Generalized partition pruning in a database system |
CN101163265B (zh) * | 2007-11-20 | 2010-08-18 | 中兴通讯股份有限公司 | 基于分布式数据库的彩信日志查询方法与系统 |
CN103390066B (zh) * | 2013-08-08 | 2016-02-17 | 上海新炬网络信息技术有限公司 | 一种数据库全局性自动化优化预警装置及其处理方法 |
CN105045851A (zh) * | 2015-07-07 | 2015-11-11 | 福建天晴数码有限公司 | 根据日志分析自动创建数据库索引的方法及系统 |
CN105653607B (zh) * | 2015-12-23 | 2019-05-07 | 北京奇虎科技有限公司 | Sql日志收集分析方法及装置 |
-
2020
- 2020-12-04 CN CN202011400842.8A patent/CN112346950B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844497A (zh) * | 2016-12-26 | 2017-06-13 | 努比亚技术有限公司 | 一种数据库代码的检查装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112346950A (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112346950B (zh) | 基于查询日志分析的数据库索引性能估计系统与方法 | |
US11409645B1 (en) | Intermittent failure metrics in technological processes | |
US9152691B2 (en) | System and method for performing set operations with defined sketch accuracy distribution | |
CN107391353B (zh) | 基于日志的复杂软件系统异常行为检测方法 | |
US10664374B2 (en) | Event analysis device, event analysis system, event analysis method, and event analysis program | |
CN109861844A (zh) | 一种基于日志的云服务问题细粒度智能溯源方法 | |
EP0875838B1 (en) | Cardinality-based join ordering | |
US11403303B2 (en) | Method and device for generating ranking model | |
CN111611458A (zh) | 大数据治理中基于元数据和数据分析技术实现系统数据架构梳理的方法 | |
US7577641B2 (en) | Computer-implemented system and method for analyzing search queries | |
CN107016018B (zh) | 数据库索引创建方法及装置 | |
US11593372B2 (en) | Automated feedback and continuous learning for query optimization | |
CN110134663B (zh) | 组织结构数据处理方法、装置、电子设备 | |
US9706005B2 (en) | Providing automatable units for infrastructure support | |
CN112162960A (zh) | 一种卫生健康政务信息共享方法、装置及系统 | |
CN113821554B (zh) | 一种实现异构数据库数据采集的方法 | |
CN114020593A (zh) | 一种基于轨迹聚类的异质流程日志采样方法与系统 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN116719750B (zh) | 软件测试方法及装置、服务器设备和存储介质 | |
CN112749238A (zh) | 搜索排序方法、装置、电子设备以及计算机可读存储介质 | |
CN117076742A (zh) | 数据血缘追踪方法、装置及电子设备 | |
Zhang et al. | A commit messages-based bug localization for android applications | |
CN111488263B (zh) | 一种解析MySQL数据库中日志的方法和装置 | |
Chen et al. | Multi-feature integration for perception-dependent examination-bias estimation | |
CN114237588A (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 |