[发明专利]一种结构化查询语言(SQL)脚本的性能分析与预测方法与系统有效
申请号: | 201310256453.6 | 申请日: | 2013-06-25 |
公开(公告)号: | CN103399851B | 公开(公告)日: | 2017-02-08 |
发明(设计)人: | 赵俊 | 申请(专利权)人: | 上海携程商务有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京英特普罗知识产权代理有限公司11015 | 代理人: | 林彦之 |
地址: | 200335 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 查询 语言 sql 脚本 性能 分析 预测 方法 系统 | ||
技术领域
本发明涉及一种基于对企业数据库中产生的结构化查询语言(SQL)脚本的性能分析与预测的而实现的数据性能监控方法和系统。
背景技术
随着企业信息系统日益庞大、数据量与日俱增,就会出现数据访问、运算等方面的性能问题,例如,某个企业的SQL server可能会运行几万个SQL脚本,而这些脚本如设计不能满足当前实时的业务需求则可能会占用大量个数据库服务器的CPU和IO资源,从而拖累数据库服务器的响应和处理速度。
由于每个企业的数据架构、数据分布、使用方式、使用场景等方面存在巨大差异,所以现在主流数据库管理软件基本只提供一些通用的数据性能监控方面的功能。
SQLserver本身提供了其部属的服务器两次开关机之间的SQL脚本运行的累计logical reads的统计,SQL server使用者可以以此作为脚本的语句运行时服务器CPU消耗的参考量,但由于logical reads的统计本身与CPU没有必然的内在的联系,因此,以此作为SQL脚本的优化的基础往往会白费工夫,即调整的语句可能在实际运行中的CPU消耗并不大。这样,开发人员就很难有效率的定位实际存在问题的SQL脚本的语句并对其进行优化和调整。
发明内容
本发明的目的是解决以上问题,通过搜集、分析数据库管理软件提供的数据性能信息,并集合企业自身各种特性、场景进行研发,提出一种可实现精确定位众多数据脚本中的性能问题和优化方向,并能根据业务预测不同优化方案带来的实际效果的数据库SQL脚本性能监控与预测方法和装置。
为实现以上目的,本发明的一个方面提出了一种结构化查询语言(SQL)脚本的性能分析与预测方法,该方法中,数据库服务器(DB服务器)上除操作系统外仅部署SQL服务器,该方法包括以下步骤:
提取结构化查询语言脚本运行的信息;
定位数据库中性能消耗占比大于一预设值的结构化查询语言脚本;
对定位到的结构化查询语言脚本进行优化;
运行优化后的结构化查询语言脚本,并比较结构化查询语言脚本优化前后的性能差异,以及,将比较得到的优化差异记录到经验数据库。
可以将不同脚本运行环境的脚本优化前后对数据库性能的影响情况记录进入经验数据库。
所述性能差异指数据库服务器的CPU和I/O的占比的变化。
其中,提取SQL脚本运行的信息可通过结构化查询语言服务器提供的DMV(Dynamic Management Views)数据,通过每日提取所有数据库服务器在一段时间内累计运行的SQL脚本和其运行信息实现。
计算结构化查询语言脚本与数据库服务器的性能消耗比采用一下方式实现即通过SQL PLAN来唯一标识多天中运行的SQL脚本,并可以计算出每天每句SQL运行的[schema_name],[object_name],[creation_time],[last_execution_time],[total_physical_reads],[to tal_logical_reads],[total_logical_writes],[execution_count],[total_worker_time],[total_elapsed_t ime],[avg_elapsed_time]这些语句中的至少一项。
通过结构化查询语言脚本在数据库服务器的性能消耗占比来排名,其中排名高的SQL脚本一般会引起问题,从而最终确认数据库性能问题是由哪些SQL脚本引起的。
在确认引起数据库性能问题的SQL脚本后,需要对相关的SQL脚本进行优化,再在下一周期内计算优化后的SQL脚本的性能,并与优化前的该脚本的性能进行对比,从而判断优化前后性能差异。
可以会记录每台数据库服务器长期的,例如1年的SQL运行记录,并对这些信息做回归分析,从而形成经验数据库,最后再根据每台服务器实际优化过的案例,来分析预测的误差率。可以用该经验数据库预测后续的优化可能产生的效果,它的作用是告诉开发人员,对某句SQL语句最大可以的优化效果,以此来判断我们是否有必要对其进行优化(如:CPU、I/O等会提升多少性能)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海携程商务有限公司,未经上海携程商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310256453.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一维气爆数控喷头
- 下一篇:一种处理阳极泥的浆化槽