Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SQL调优和诊断利器之SQLHC介绍

SQL调优和诊断利器之SQLHC介绍

作者头像
SQLplusDB
发布于 2022-08-19 13:39:20
发布于 2022-08-19 13:39:20
82700
代码可运行
举报
运行总次数:0
代码可运行

概述

本文介绍在SQL问题诊断过程中利用的工具SQLHC。

SQLHC

SQL Tuning Health-Check Script (SQLHC)是SQLT的一个简化版本,同样用于诊断SQL问题,检查单条 SQL 语句运行的环境,包括基于成本的优化器(CBO)的统计数据,用户对象的元数据定义,配置参数和其他可能影响到待分析 SQL 性能的因素。

SQLHC安装

SQLHC安装也不需要任何配置,并且运行时不会在数据库中创建任何对象。

你只需要通过MOS 文档Doc ID 1366133.1下载后,解压即可运用。

SQLHC主要包含3个脚本:

sqlhc.sql:SQL Health-Check (extract mode)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REM DESCRIPTION
REM Produces an HTML report with a list of observations based on
REM health-checks performed in and around a SQL statement that
REM may be performing poorly.
REM
REM Inputs a memory-resident SQL_ID.
REM
REM In addition to the health_check report, it generates some
REM additional diagnostics files regarding SQL performance.
REM
REM This script does not install any objects in the database.
REM It does not perform any DDL commands.
REM It only performs DML commands against the PLAN_TABLE then it
REM rolls back those temporary inserts.
REM It can be used in Dataguard or any read-only database.

sqldx.sql:SQL Dynamic eXtract

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REM DESCRIPTION
REM Produces a set of reports with information about one SQL
REM statement.
REM
REM This script does not install any objects in the database.
REM It does not perform any DDL commands.
REM It can be used in Dataguard or any read-only database.

sqlhcxec.sql:SQL Health-Check (execute mode)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REM DESCRIPTION
REM Produces an HTML report with a list of observations based on
REM health-checks performed in and around a SQL statement that
REM may be performing poorly.
REM
REM Inputs a script name which contains one SQL. This input script
REM could include binds. For an example of its format see
REM sqlt/input/sample/script1.sql.
REM
REM In addition to the health_check report, it generates some
REM additional diagnostics files regarding SQL performance.
REM
REM This script does not install any objects in the database.
REM It does not perform any DDL commands.
REM It only performs DML commands against the PLAN_TABLE then it
REM rolls back those temporary inserts.
REM It can be used in Dataguard or any read-only database.

SQLHC的使用

1.通过V$SQL或AWR(dba_hist_sqltext)找到要收集数据的SQL的SQL_ID 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT sql_id, hash_value, SUBSTR(sql_text,1,40) Text
FROM v$sql
WHERE sql_text LIKE '%&An_Identifiable_String%';

2.执行sqlhc.sql脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> START sqlhc.sql T <SQL_ID>
SQL> exit

3.执行例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--确认SQL_ID
SQL> conn teacherwhat/teacherwhat
Connected.
SQL> SELECT sql_id, hash_value, SUBSTR(sql_text,1,40) Text
FROM v$sql
WHERE sql_text LIKE 'select/*+ GATHER_PLAN_STATISTICS MONITOR */ count(*)%'; 2 3


no rows selected


SQL> select/*+ GATHER_PLAN_STATISTICS MONITOR */ count(*) from SQLMON where a='A';


COUNT(*)
----------
1000


SQL> SELECT sql_id, hash_value, SUBSTR(sql_text,1,40) Text
FROM v$sql
WHERE sql_text LIKE 'select/*+ GATHER_PLAN_STATISTICS MONITOR */ count(*)%'; 2 3


SQL_ID HASH_VALUE
------------- ----------
TEXT
--------------------------------------------------------------------------------
acsdndc43qs74 138109156
select/*+ GATHER_PLAN_STATISTICS MONITOR

--执行脚本
SQL> START sqlhc.sql T acsdndc43qs74
...
SQLDX files have been added to sqlhc_20160828_090351_acsdndc43qs74.zip

Archive: sqlhc_20160828_090351_acsdndc43qs74.zip
Length Date Time Name
--------- ---------- ----- ----
7027 08-28-2016 09:04 sqlhc_20160828_090351_acsdndc43qs74_1_health_check.html
114794 08-28-2016 09:05 sqlhc_20160828_090351_acsdndc43qs74_2_diagnostics.html
5937 08-28-2016 09:05 sqlhc_20160828_090351_acsdndc43qs74_3_execution_plans.html
7066 08-28-2016 09:05 sqlhc_20160828_090351_acsdndc43qs74_4_sql_detail.html
23891 08-28-2016 09:05 sqlhc_20160828_090351_acsdndc43qs74_9_log.zip
2994 08-28-2016 09:05 sqlhc_20160828_090351_acsdndc43qs74_5_sql_monitor.zip
83540 08-28-2016 09:06 sqlhc_20160828_090351_acsdndc43qs74_8_sqldx.zip
--------- -------
245249 7 files
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SQL和数据库技术 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[Oracle]-[sqlplus相关]-serveroutput参数
select /*+ no_index(t1 idx_t1) */ * from t1 where n=3; select * from table(dbms_xplan.display_cursor(null,null,'advanced'));
bisal
2019/01/29
1.1K0
运维,诊断,健康检查,优化定制工具ora使用说明
使用工具的目的是为了提高工作效率, 先有思路和方法,然后再借助工具,方能达到事半功倍的效果.
老虎刘
2022/06/27
1.4K0
如何使用coe_xfr_sql_profile绑定手工新生成的执行计划
coe_xfr_sql_profile.sql脚本网上找 1.原来的执行计划,走全表,direct path readSELECT 'ext.vivo.vivoIssue.model.ActivityRecords', A0.approveNO, A0.roleName, TO_CHAR (A0.createStampA2, 'dd mm yyyy hh24:mi:ss'), A0.markForDeleteA2, TO_CHAR (A0.modi
lemotree
2022/06/21
8190
SQL调优和诊断利器之SQLT介绍
SQLT 会根据用户指定的模式,连接到数据库,收集执行计划、基于成本的 Optimizer CBO 统计信息、Schema 对象元数据、性能统计信息、配置参数和会影响正在分析的 SQL 性能的其他元素。
SQLplusDB
2022/08/19
5240
了解一下sqlhc
看到很多大神,尤其是老虎刘老师在做SQL调优的时候,都提到了sqlhc,找了一些资料,借此机会,学习一下。
bisal
2021/01/05
9370
了解一下sqlhc
【SQL Performance】实时SQL监控功能(Real-Time SQL Monitoring)
实时SQL监控功能(Real-Time SQL Monitoring)是Oracle11g推出的功能,通过这个功能可以实时地监视执行中的SQL性能。
SQLplusDB
2020/03/26
1.7K0
欲善其事必利其器-SQL性能分析工具sqlhc简单介绍
这个工具在oracle 的 MOS网站可以下载,原压缩包里面有3个文件,老虎刘一般只用sqlhc.sql一个文件。
老虎刘
2022/06/22
1.1K0
欲善其事必利其器-SQL性能分析工具sqlhc简单介绍
Oracle 12c 新特性:SQL Plan Directives与过量的动态采样解析
在 12c 中,优化器进行了较大的改变,推出了 Adaptive query optimization,从整体上说,Adaptive query optimization 可以看作如下两部分:
数据和云
2018/07/27
1.3K0
Oracle 12c 新特性:SQL Plan Directives与过量的动态采样解析
【SQL】历史SQL监控(Historical SQL Monitoring ) 功能(12c)
Oracle 11g版本 推出了实时SQL监控功能(Real-Time SQL Monitoring),用于实时地监视执行中SQL的性能;Oracle 12c 对其进一步进行了扩展,推出了历史SQL监控功能(Historical SQL Monitoring)。
SQLplusDB
2020/03/26
1.8K0
SQL调优和诊断之何时使用何工具?
当把问题定位到某个或某些SQL后,我们接下来就要针对不同的场景和条件,通过各种工具和方法进行SQL的分析,而针对不同的环境和场景,我们选择的工具可能也有所不同。
SQLplusDB
2022/08/19
5840
供收藏:Oracle固定SQL执行计划的方法总结
Oracle数据库中执行sql的时候,优化器会根据优化器统计信息和一些参数来生成“它认为最好的“执行计划。
SQLplusDB
2022/08/19
1.4K0
Oracle 执行计划查看方法汇总及优劣比较
执行计划是一条 SQL 语句在 Oracle 数据库中的执行过程或访问路径的描述。如下图所示,是一个比较完整的执行计划示意图。
JiekeXu之路
2022/12/07
1.5K0
Oracle 执行计划查看方法汇总及优劣比较
【DB笔试面试607】在Oracle中,coe_load_sql_profile.sql脚本的作用是什么?
在Oracle中,coe_load_sql_profile.sql脚本的作用是什么?
AiDBA宝典
2019/09/29
1.6K0
SQL调优和诊断工具之SQL Trace (10046 Event)介绍
为了诊断SQL性能或者其他方面的问题,有时我们需要跟踪SQL语句和的执行过程,这时我们可以启用SQL Trace (10046 Event)来收集语句的执行过程和各种相关信息。
SQLplusDB
2022/08/19
8180
SQL调优和性能监控利器SQL Monitor
SQL Monitor是Oracle官方提供的自动监控符合特定条件的SQL,用于收集执行时的细节信息的监控工具,常用于SQL调优和系统性能监控。
bisal
2022/02/11
1.6K0
SQL调优和性能监控利器SQL Monitor
Oracle 如何使用 SQLT 进行 SQL 调优
SQLT:SQLTXPLAIN,也被称为 SQLT,是由 Oracle 服务器技术中心- ST CoE 提供的工具。SQL main methods 输入一条 SQL 语句并输出一组诊断文件。这些文件通常用于诊断执行不良的 SQL 语句。SQL 连接到数据库并收集执行计划、基于成本的Optimizer CBO 统计信息、模式对象元数据、性能统计信息、配置参数和影响所分析SQL的性能的类似元素。对于 tuning SQL, SQLT 需要一定程度的专业知识才能最大限度地利用它。对于大多数问题,我们建议您首先使用 SQL 运行状况检查(SQLHC:SQL Health Check)检查查询,如果无法解决问题,则转到 SQLT。
JiekeXu之路
2022/12/07
9790
Oracle 如何使用 SQLT 进行 SQL 调优
cannot fetch plan for SQL_ID
  SQL tuning过程中离不开分析SQL语句的执行计划。在一次提取执行计划的时候碰到cannot fetch plan for SQL_ID的错误提示。根据错误 提示来看需要检查SQL的子游标或该执行计划不在v$sql_plan表中,而这种情况一般不存在。因为刚刚执行过的SQL语句不可能这么快从v$sql_plan 移除。下面给出错误描述及处理办法。
Leshami
2018/08/14
6140
dbms_xplan之display_cursor函数的使用
        DBMS_XPLAN包中display_cursor函数不同于display函数,display_cursor用于显示SQL语句的真实的执行计划,在大多数情况下,显示真实 的执行计划有助于更好的分析SQL语句的全过程,尤其是运行此SQL语句实时的I/O开销。通过对比预估的I/O与真实的I/O开销来判断SQL语句所存 在问题,如缺少统计信息,SQL语句执行的次数,根据实际中间结果集的大小来选择合适的连接方式等。本文仅仅讲述display_cursor函数的使 用。         有关执行计划中各字段模块的描述请参考: 执行计划中各字段各模块描述         有关由SQL语句来获取执行计划请参考:     使用 EXPLAIN PLAN 获取SQL语句执行计划         有关使用autotrace来获取执行计划请参考: 启用 AUTOTRACE 功能         有关dbms_xplan之display函数请参考:     dbms_xplan之display函数的使用 一、display_cursor函数用法 1、display_cursor函数语法
Leshami
2018/08/14
1.1K0
SQL调优和诊断从哪入手?
本文作为概要,包括如何定位SQL问题、SQL相关的问题类别以及诊断SQL性能问题需要的相关信息。
SQLplusDB
2020/11/12
9400
Oracle SQL性能诊断与调试信息采集方法
经常见到有人在QQ群和微信群发SQL代码和(或)简单执行计划的截屏咨询优化问题,如果是比较简单的SQL,也没问题; 如果是稍微复杂一点的SQL, 特别是一些根因分析类问题, 建议收集尽可能详细的信息.
老虎刘
2022/06/27
8420
Oracle SQL性能诊断与调试信息采集方法
推荐阅读
相关推荐
[Oracle]-[sqlplus相关]-serveroutput参数
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档