[发明专利]一种监控SQL语句性能的方法在审
| 申请号: | 201410061517.1 | 申请日: | 2014-02-24 |
| 公开(公告)号: | CN103793526A | 公开(公告)日: | 2014-05-14 |
| 发明(设计)人: | 初贤哲 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 250014 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 监控 sql 语句 性能 方法 | ||
技术领域
本发明涉及计算机系统设计领域和数据库领域,具体涉及一种监控机构化查询语言(Structured Query Language,SQL)SQL语句性能的方法。
背景技术
在当前高速发展的信息时代,IT系统性能问题一直是横亘在技术人员面前一座难以逾越的大山。各种性能优化的方法被不断地探索出来。在各种基于数据库的系统中,为保证语句的查询效率,IT公司纷纷开发了许多技术,从各个方面提供支持。在SQL的优化和调优方面,Oracle的gridcontrol、OEM等工具,以及其他第三方图形化工具都做得比较好。但是这些图形化工具在一些极端情况下,例如数据库没有装资料库或者第三方工具收费,如何监控数据库SQL语句性能成为一个问题。
发明内容
此种在字符界面下监控SQL语句性能的方法是通过查询数据字典来获SQL语句的性能指标来监控SQL语句的性能本
本发明主要是利用oracle的MMON以及MMNL进程收集的性能数据作为源数据,通过对源数据不同层面的分析得出相应的sql性能数据,根据定义的阀值来给相关人员发送预警邮件或者短信,从而提高工作效率。本发明的设计方法是当某个测量值(metrics)超过了预设的限定值(threshold value)后提交警告,并创建新的 MMON 隶属进程(MMON slave process)来进行快照(snapshot),捕获最近修改过的 SQL 对象的统计信息,而对于轻量级的且频率较高的和可管理性相关各种任务交给MMNL进程来完成,这2个进程将获得数据写入到WRM$_* 和 WRH$_*开头的表中,通过读取这些表中的数据来获得相应sql的基本信息-包括sql的执行次数、执行时间、变量值、cpu消耗、io消耗、内存消耗以及各种的等待事件,通过对这些基本指标的监控类来达到监控sql语句性能的目的。
该设计结构包括:oracle后台进程模块(1)、问题进程模块(2)、问题sql模块(3)、问题sql资源消耗以及执行计划模块(4)、接口模块(5);
oracle后台进程模块,后台进程模块是集成在oracle内部,有oracle自动来维护,负责来收集客户端发出的sql语句的相关数据,并根据相关定义来定时运行;
问题进程模块,通过系统级别定位到问题进程,主要是通过对系统资源的监控包括对cpu的消耗、io的消耗、内存的使用、文件打开数、打开的进程数等资源来得到问题进程;
问题sql模块,通过进程模块获得问题进程的id,然后通过字典视图获得该进程执行的sql_id,通过sql_id可以获得该进程执行的sql语句文本;
问题sql资源消耗以及执行计划模块,通过sql模块获得sql_id来得到sql语句的执行计划,然后通过分析该执行计划得到该这个sql语句最消耗资源的原因;
接口模块,通过对邮件或者短信系统接口的调用将问题sql发送给相关维护人员,以便及早发现问题。
本发明的有益效果是:通过在出现性能问题时段MMON以及MMNL进程收集的性能数据为依据,先找到最消耗资源的进程,其中包括最消耗cpu、最消耗内存、最消耗io、执行次数最多、硬解析最多、version过多、consistent read过多、segment最大等,通过找到该进程的id来获得该进程执行的sql语句,然后通过autotrace、explain、dbms等方法获得该sql语句的执行计划。通过对sql语句执行计划的解读来获得该sql语句主要消耗的资源以及他的等待事件,比如发现该语句的io消耗最大,查看他的执行计划的时候发现是在一个大表的全表扫描、那么就应该考虑是否应该在相应的字段上增加索引、是否需要分区、是否需要建立全局或者是本地索引、是否需要对大表的一些历史数据进行清理、是否这个sql语句需要进行调整等来避免全表扫描,通过对相应的语句进行调整从而使得这类建议更加自动化的提示给管理人员,而且因为是通过sql语句进行相应资源的查询,这样更容易实现定制化,可以根据自己的需要在出现问题是发出相应的警告,而且sql语句的接口是标准化的减少了开发的工作量。
这种字符界面下监控sql语句的方法具有上述优点,使其弥补了在无图形界面的情况下无法监控sql语句性能的不足,大大提高了DBA的工作效率与工作质量,减轻了DBA日常维护的工作量,提高了DBA对问题的相应速度跟时间,而且由于可定制化使得该方法在无法使用图形化的情况下有很高的技术价值。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410061517.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于云的血库管理方法
- 下一篇:一种计算机启动逻辑通用性的实现方法





