[发明专利]一种SQL脚本的定位方法、装置及系统在审
申请号: | 201610816425.9 | 申请日: | 2016-09-12 |
公开(公告)号: | CN107818093A | 公开(公告)日: | 2018-03-20 |
发明(设计)人: | 赵俊;高飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/30 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 脚本 定位 方法 装置 系统 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种SQL脚本的定位方法、装置及系统。
背景技术
SQL(Structured Query Language,结构化查询语言)脚本,是指由SQL语句组合起来的命令集,来实现一定的查询功能,例如,查询最近三个月所有住在北京市的客户。
对于很多企业,其服务器的数据库内可能会运行有几万个SQL脚本,而某些SQL脚本中可能会存在一些性能消耗较大的SQL语句,例如,在SQL脚本A中,某条SQL语句使用了全表扫描的方式进行查找,但实际上,使用索引查找的方式可以更加快速的得到查找结果,这些性能消耗较大的SQL语句不仅降低了SQL脚本的执行效率,长期运行时还会占用其他SQL脚本的CPU(Central Processing Unit,中央处理器)资源和I/O(Input/Output,输入/输出)资源,使整个服务器的响应速度降低,甚至出现宕机现象。
对此,有的数据库软件为使用者提供了一些针对SQL脚本的监控功能,以Oracle数据库软件为例,它可以为使用者统计并显示在相邻两次开机或相邻两次关机的时间段内,CPU执行每一个SQL脚本累计占用的时长,从而得到SQL脚本累计占用时长的排名。
然而,对于某个SQL脚本而言,CPU执行该SQL脚本累计占用的时长,并不一定与该SQL脚本的执行效率成反比,例如,SQL脚本B每天需要运行5个小时,而SQL脚本C每天只运行3分钟,这并不意味着SQL脚本B的执行效率低于SQL脚本C,也就是说,通过统计累计占用时长的方法并不能准确的反映出SQL脚本的执行效率,因此,使用者很难通过该方法准确定位出实际性能消耗较大的SQL脚本。
发明内容
本发明的实施例提供一种SQL脚本的定位方法、装置及系统,可以较为准确地定位出性能消耗较大的SQL脚本,提高服务器内CPU资源和I/O资源的利用率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种SQL脚本的定位方法,包括:获取在指定时段内运行的N个SQL脚本中每个SQL脚本产生的运行参数,该运行参数用于指示运行该SQL脚本时的资源消耗量,N>1;根据每个SQL脚本的运行参数,计算在该指定时段内每个SQL脚本在N个SQL脚本中的资源消耗占比;若第一SQL脚本(第一SQL脚本为N个SQL脚本中的任一个)的资源消耗占比大于阈值,则说明在指定时段内执行该第一SQL脚本时消耗了大量其所在的数据库服务器的资源,即该第一SQL脚本内很可能含有性能消耗较大的SQL语句,因此,可将该第一SQL脚本确定为目标SQL脚本,以便开发人员及时对该目标SQL脚本进行优化,避免该目标SQL脚本长时间运行后过度占用数据库服务器的
CPU资源和I/O资源的问题,从而提高数据库服务器内CPU资源和I/O资源的利用率。
在一种可能的实现方式中,该指定时段包括连续的M个运行周期,M>1;其中,根据每个SQL脚本的运行参数,计算在该指定时段内每个SQL脚本在该N个SQL脚本中的资源消耗占比,包括:对于每个运行周期,根据该运行周期内每个SQL脚本的运行参数,计算在该运行周期内每个SQL脚本在该N个SQL脚本中的周期消耗占比;对于每个SQL脚本,将该SQL脚本在该M个运行周期内的M个周期消耗占比的平均值,作为该SQL脚本的资源消耗占比。
在一种可能的实现方式中,该指定时段包括连续的M个运行周期,M>1;其中,获取在指定时段内运行的N个SQL脚本中每个SQL脚本产生的运行参数,包括:对于每个SQL脚本,分别获取该SQL脚本在该M个运行周期内产生的M组运行参数;确定该M组运行参数中的离群值;将该离群值从该M组运行参数中去除,从而将误差较大的运行参数剔除,以提高后续计算资源消耗占比时的计算精度。
在一种可能的实现方式中,在计算在该指定时段内每个SQL脚本在该N个SQL脚本中的资源消耗占比之前,还包括:获取在该指定时段内执行每个SQL脚本的数据库服务器的资源占用率;其中,根据每个SQL脚本的运行参数,计算在该指定时段内每个SQL脚本在该N个SQL脚本中的资源消耗占比,包括:对于每个SQL脚本,将该SQL脚本的运行参数与该N个SQL脚本的运行参数之和的比值作为相对资源消耗占比;将该相对资源消耗占比与该资源占用率的乘积,作为该SQL脚本的资源消耗占比。利用本方法计算得出的资源消耗占比是一个绝对值,即每个SQL脚本在指定时段内实际消耗的数据库服务器的资源,可以使得开发人员直观的获知每个SQL脚本运行时实际消耗的资源消耗占比。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610816425.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:文档处理方法及装置
- 下一篇:语文结合图像译意系统及其方法