欲善其事必利其器-SQL性能分析工具sqlhc简单介绍

今天是周末,看点不烧脑的内容。html


sqlhc是老虎刘最经常使用的SQL优化工具,没有之一。sql


这个工具在oracle 的 MOS网站能够下载,原压缩包里面有3个文件,老虎刘通常只用sqlhc.sql一个文件。
数据库


sqlhc是SQL health check的简称,可以收集sql相关的表、索引、统计信息、优化器参数、SQL执行状况、等待事件等信息,能够帮你检查SQL存在的问题并优化SQL性能优化


使用sqlhc以前,首先要提供要检查或优化的SQL的sql_id,通常DBA都知道sql_id,遗憾的是有些初级研发人员殊不知道sql_id为什么物,本身百度一下,很是简单。微信


一般状况下,咱们会取AWR报告的TOP SQL进行性能分析。oracle


执行方法:工具

使用sqlplus 连到数据库(建议用DBA用户,由于要访问一些性能视图)性能


两种执行方法(注意:10g版本执行过程还须要输入一个参数,直接回车便可):优化


一、一次输入两个参数:网站


SQL>@sqlhc T sql_id


二、根据提示依次输入参数:


SQL> @sqlhc 


Parameter 1:

Oracle Pack License (Tuning, Diagnostics or None) [T|D|N] (required)


Enter value for 1: T

第一个参数,根据购买License状况选择T、D或N(大多数人会选择T)


PL/SQL procedure successfully completed.


Parameter 2:

SQL_ID of the SQL to be analyzed (required)


Enter value for 2: 9kpzwpgf7gdz2  

第二个参数:你要检查优化的SQL的sql_id


......具体执行过程较长,省略


执行过程大概几分钟到半小时不等(根据AWR保存周期、字典表大小不一样相差较大,通常系统应该在5分钟之内可以完成),在生产系统上执行没关系张,对系统基本无影响!


执行过程有log,也有屏显。

执行过程会inset 数据到plan_table表,执行结束会rollback。


执行完成后会在当前目录下生成一个相似下面形式的一个zip文件:

sqlhc_20160722_170249_1g33tgkybp2sv.zip

文件名以sqlhc开头,依次是日期、时间、sql_id。


压缩包内的文件通常以下图所示:

其中4个html文件和log.zip是一般存在的。


    10053 trace文件的生成须要11.2版本以上,sql_id仍在library cache内的状况下。

    若是*sql_monitor.zip 也包含在sqlhc压缩包内,说明你的SQL执行时间超过了5s,或者是并行的SQL,并且收集sqlhc时仍保留在sql monitor的内存。sql monitor对分析sql执行计划有很大帮助,这个工具也能够做为一个专门的主题。若是遇到问题收集sqlhc信息及时,就很是有可能收集到sql monitor文件。若是一个sql执行完后超过半小时没有收集sqlhc,sql monitor信息就就很是有可能被刷出内存。


主要分析的的3个html文件是:

*_health_check.html

*_diagnostics.html

*_execution_plan.html


具体内容很是丰富,本身动手看看吧,看多了你就成“老中医”了!

找人帮忙时直接把zip文件发给对方,须要的信息基本上可以诊断分析和优化了。



分享持续更新中,敬请关注:老虎刘谈SQL优化


脚本分享在QQ群:16778072    

欢迎转发分享给更多的朋友

为了方便交流,有兴趣的朋友能够加入同名微信群:



本文分享自微信公众号 - 老虎刘谈oracle性能优化(sql_tigerliu)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索