前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >欲善其事必利其器-SQL性能分析工具sqlhc简单介绍

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

作者头像
老虎刘
发布2022-06-22 17:35:28
1K0
发布2022-06-22 17:35:28
举报
文章被收录于专栏:老虎刘谈oracle性能优化

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

sqlhc是老虎刘最常用的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进行性能分析。

执行方法:

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

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

1、一次输入两个参数:

SQL>@sqlhc T sql_id

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

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文件发给对方,需要的信息基本上能够诊断分析和优化了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老虎刘谈oracle性能优化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档