[发明专利]一种基于SQL语义可扩展的性能诊断调优方法在审
申请号: | 201611179242.7 | 申请日: | 2016-12-19 |
公开(公告)号: | CN106598862A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 王召冠 | 申请(专利权)人: | 济南浪潮高新科技投资发展有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 孟峣 |
地址: | 250100 山东省济南市*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sql 语义 扩展 性能 诊断 方法 | ||
技术领域
本发明涉及计算机技术领域,具体地说是一种基于SQL语义可扩展的性能诊断调优方法。
背景技术
随着社会信息化进程的发展,现代IT系统业务及技术架构越来越复杂,系统规模越来越庞大,尤其是为了适应业务的灵活性,很多功能是通过配置、适配、二次开发等多样化的方式产生的,在这种情况下,原有系统的数据分布会出现较大的倾斜,默认索引的合理性往往会显得不足,甚至在特殊场景下会起到负面的作用。而单一模块开发人员对某一数据表的访问方式缺乏全面的了解,对数据库内部的运行机制存在认识片面的问题,面对压力测试和生产环境的性能问题往往不知如何下手。
如何提供一种曲线平滑的方式,达到性能问题的识别,诊断,分析乃至解决的方法,是现代IT系统新的挑战。我们希望总结一套具有可操作性的分析方法及工具来生成推荐的索引调整和优化建议,降低系统优化的门槛与成本,提高数据库系统的性能与运行效率。
基于此,现提供一种基于SQL语义可扩展的性能诊断调优方法,来解决上述问题。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于SQL语义可扩展的性能诊断调优方法。
一种基于SQL语义可扩展的性能诊断调优方法,其实现过程为:
首先获取性能数据;
从获取的数据中找出需要诊断的SQL语句,并将其解析成一颗语法树;
对语法树进行分析,该语法树的分析可进行扩展;
根据分析结果给出诊断结果和优化建议,即给出索引创建或调整的建议。
获取的性能数据包括动态性能数据和静态性能数据,其中动态性能数据包括SQL脚本、唯一标识ID、CPU耗费、IO耗费、执行时间、执行频率、逻辑读数据、物理读数据、磁盘写数据,静态性能数据包括数据表信息、索引统计信息,其中数据表信息包括表名、字段名、不重复值的数量、空值的数量、直方图中的桶数、采样数,索引统计信息包括表名、索引名、总行数及字段的选择性。
所述性能数据通过性能视图获取,具体为:
首先通过性能视图获取耗时较长、IO消耗较大的TOP SQL信息;
获取SQL的执行计划及具体IO耗费的分布情况;
收集SQL脚本中数据表的统计信息;
收集核心数据表的SQL访问及执行频率。
所述SQL脚本中数据表的统计信息包括每个表的具体IO、该表筛选列字段的选择性、表的索引和字段顺序。
把SQL解析成语法树的过程为:将获取到的数据进行筛选,获得需要分析的Top SQL列表,然后按照SQL92/SQL99标准,对每一个SQL,生成一个相应的语法树。
对语法树进行分析的过程为:
首先识别语法树中SQL语句对应数据表的统计信息和字段选择性;
查看数据表总行数、索引情况及索引字段的顺序,检查索引字段的顺序是否与该字段的选择性匹配;
重建索引及更新统计信息;
统计数据表的访问SQL及执行频率,确认调整的索引覆盖范围是否合理,或拆分成多个小的组合索引。
根据分析结果给出诊断结果和优化建议经过分组后在系统的交互界面上输出展示,展示内容包括建议的优化内容及分析依据。
本发明的一种基于SQL语义可扩展的性能诊断调优方法和现有技术相比,具有以下有益效果:
本发明的一种基于SQL语义可扩展的性能诊断调优方法,提供了更为全面和系统的索引调整分析方法,降低对系统物理及逻辑IO的耗费,提高系统整体的响应性能与吞吐量,能有效保证系统的响应性能,降低系统的维护成本,实用性强,适用范围广泛,具有很好的推广应用价值。
附图说明
附图1为本发明的SQL语法树示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
本发明的技术任务是针对上述现有技术的不足,提供了一种更加全面、基于SQL语义可扩展的性能诊断调优方法,该方法包括SQL响应时间、执行计划与IO、数据表的统计信息、数据表典型SQL的执行频率、SQL脚本生成语法树及对应的运算分析等多个步骤,抓取的性能数据包括:数据表的总行数、满足筛选条件的行数、CPU时间、SQL的执行计划、物理及逻辑IO、筛选字段的选择性及索引字段的顺序等。
其实现包括以下步骤:
首先获取性能数据;
如附图1所示,从获取的数据中找出需要诊断的SQL语句,并将其解析成一颗语法树;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于济南浪潮高新科技投资发展有限公司,未经济南浪潮高新科技投资发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611179242.7/2.html,转载请声明来源钻瓜专利网。