Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SQL调优和诊断之何时使用何工具?

SQL调优和诊断之何时使用何工具?

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

概述

当把问题定位到某个或某些SQL后,我们接下来就要针对不同的场景和条件,通过各种工具和方法进行SQL的分析,而针对不同的环境和场景,我们选择的工具可能也有所不同。

根据用户使用的数据库的版本(Editions)和license情况,在SQL调优和诊断工具会有所不同,主要可以分为以下几类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
・企业版(Enterprise Edition )
・企业版(Enterprise Edition ) + Diagnostics Pack
・企业版(Enterprise Edition ) + Tuning Pack(include Diagnostics Pack)
・企业版(Enterprise Edition )以外的版本,如标准版(Standard Edition),个人版(Personal Edition )等

而根据问题的重现性,我们面临的问题主要可以分为以下3种:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.通过某些条件和方法可以重现的问题
2.不可以重现,需要实时分析的问题
3.不可以重现,需要事后分析的问题

本文介绍在SQL问题诊断过程中,不同场景下应该使用的各个SQL调优和诊断工具。

工具的分类(Editions&license)

为了了解数据库的版本(Editions)和license情况可以使用哪些工具,我们需要首先了解一下Diagnostics Pack license和Tuning Pack license都包含哪些数据库功能。

对于Diagnostics Pack license和Tuning Pack license的购买前提是,你必须使用的是企业版(Enterprise Edition )。

即,如果你利用的数据库是企业版(Enterprise Edition )以外的版本,如标准版(Standard Edition),个人版(Personal Edition )等的话,你完全不需要在意这些 Pack license,因为这些版本不能够使用Diagnostics Pack license和Tuning Pack license都包含哪些数据库功能。

1.Oracle Diagnostics Pack 包括的特性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AWRADDMASH及其相关的视图、表和程序包等
Performance monitoring and diagnostics (database and host)
Automatic Workload Repository (AWR)AWR Warehouse★
Automatic Database Diagnostic Monitor (ADDM)★
Compare Period ADDM★
Real Time ADDM★
Active Session History (ASH)ASH analytics★
Performance Hub
Exadata Cell Grid Administration
Exadata Cell Grid Performance
Exadata Cell Group Health Overview page
Exadata Resource Utilization
Blackouts
Notifications
Metric and Alert/Event history
User-Defined Metrics and Metric Extensions
Management Connectors
Dynamic metric baselines and Adaptive metric thresholds
Monitoring templates and Template Collections
Replay Compare Period Report
Supporting functionality to perform per stream bottleneck detection and per component top wait event analysis

Licensed Command-Line APIs:
程序包(Package):
DBMS_WORKLOAD_REPOSITORY package
DBMS_ADDM package
DBMS_ADVISOR package (if advisor_name=ADDM or task_name=ADDM prefix)

功能方法(Function):
DBMS_WORKLOAD_REPLAY.COMPARE_PERIOD_REPORT function

视图(Views):
V$ACTIVE_SESSION_HISTORY(X$ASH)
DBA_STREAMS_TP_PATH_BOTTLENECK
DBA_ADDM_*
MGMT$*

数据(Data):
DBA_STREAMS_TP_COMPONENT_STAT (where STATISTIC_UNIT = 'PERCENT')
DBA_HIST_* ( except DBA_HIST_SNAPSHOT, DBA_HIST_DATABASE_INSTANCE, DBA_HIST_SNAP_ERROR, DBA_HIST_SEG_STAT, DBA_HIST_SEG_STAT_OBJ, DBA_HIST_UNDOSTAT)
DBA_ADVISOR_* (when ADVISOR_NAME =ADDM or TASK_NAME =ADDM*)

报告(Reports):/rdbms/admin/ 路径下的这些脚本
awrrpt.sql, awrrpti.sql, awrgrpt.sql, awrgrpti.sql, awrgdrpt.sql, awrgdrpi.sql, addmrpt.sql, addmrpti.sql, ashrpt.sql, ashrpti.sql, awrddrpt.sql, awrddrpi.sql, awrsqrpi.sql, awrsqrpt.sql, awrextr.sql, awrload.sql, awrinfo.sql, spawrio.sql, spawrrac.sql.

2.Oracle Tuning Pack 包括的特性

你要使用Oracle Tuning Pack 的特性的前提是,你必须要有Oracle Diagnostics Pack。

Oracle Tuning Pack 包括的以下特性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL Access Advisor
SQL Tuning Advisor
Oracle Database In-Memory Advisor
Automatic SQL Tuning
SQL Tuning Sets
SQL Profiles
Real-time SQL and PL/SQL Monitoring
Real-time Database Operations Monitoring
Reorganize objects

Licensed Command-Line APIs:
程序包(Package):
DBMS_ADVISOR package (if advisor_name=SQL Tuning Advisor or SQL Access Advisor)
DBMS_SQLTUNE

视图(Views):
V$SQL_MONITOR
V$SQL_PLAN_MONITOR

报告(Reports):/rdbms/admin/ 路径下的这些脚本
sqltrpt.sql

参考:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Database Licensing Information User Manual 12c
>Oracle Diagnostics Pack
>Oracle Tuning Pack

根据各个工具可以适用的场景,我们又可以作为以下几类:

可以重现的问题

如果能够通过某些条件和方法可以重现发生的问题时,是最容易也是最有可能找到根本原因的。

对于这种问题,我们可以使用任何可以用的工具进行问题的分析:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
EXPLAIN PLAN
・Autotrace (SQL*PLUS)
・动态视图
・AWR SQL Report
・StatsPack SQL Report
・DBMS_XPLANSQLTXPLAIN(SQLT)SQL Tuning Health-Check Script (SQLHC)SQL TRACE10046)
・OPTIMIZER TRACE10053 )
・Real-Time SQL Monitoring
・DBMS_SQLDIAG

实时分析的问题

对于需要实时分析的问题,我们主要可以通过如下工具进行分析。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
・动态视图 (dynamic performance views)
V$SQL
V$SQL_SHARED_CURSOR
V$SQL_*

和数据库整体相关时:
V$SESSION
V$PROCESS
V$BGPROCESS
V$LOCK
V$LOCKED_OBJECT
V$SESSION_WAIT
V$LATCH
V$LATCHHOLDER
V$ROWCACHE

・Real-Time SQL Monitoring (11g)SQLTXPLAIN(SQLT)
>XTRACT mode
・SQL Tuning Health-Check Script (SQLHC)10053DBMS_SQLDIAG.DUMP_TRACE

事后分析的问题

对于需要事后分析的问题,我们主要可以通过AWR和Statspack工具进行分析。

其中需要注意的是Statspack不需要任何Licence,但是AWR、ADDM、ASH却需要Oracle Diagnostics Pack Licence.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
・StatsPack Report
・StatsPack SQL Report
・AWR Report
・ADDMASHAWR SQL Report
・Historical SQL Monitoring (12c)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oracle 12.2新特性掌上手册 - 第六卷 ADG的性能与诊断
编辑手记:在Oracle 12.2中,ADG有许多惊人的改进,通过ADG standby数据库的性能数据收集和诊断、快照standby数据库的应用,以及实时的数据库操作监控的实现,能够根据用户需求相协调来提高DBA效率,从而为业务应用程序提供更好的服务质量。 1、Oracle Data Guard Support for Oracle Diagnostics Pack(Oracle DG 提供诊断包的支持) Oracle诊断包可以与以read-only的ADG standby数据库一起使用。能够将性能数据捕
数据和云
2018/03/06
1.4K0
SQL调优和诊断利器之SQLT介绍
SQLT 会根据用户指定的模式,连接到数据库,收集执行计划、基于成本的 Optimizer CBO 统计信息、Schema 对象元数据、性能统计信息、配置参数和会影响正在分析的 SQL 性能的其他元素。
SQLplusDB
2022/08/19
5220
了解一下sqlhc
看到很多大神,尤其是老虎刘老师在做SQL调优的时候,都提到了sqlhc,找了一些资料,借此机会,学习一下。
bisal
2021/01/05
9300
了解一下sqlhc
获取历史执行计划:AWR/StatsPack SQL 报告
当发生SQL性能问题后,可能要看看历史的执行状况,以确认是否有什么变化。对于这种情况,Oralcle的AWR/StatsPack SQL 报告就很有用了。
SQLplusDB
2022/08/19
4510
使用shell定制addm脚本(r3笔记第88天)
在10g开始推出的addm对于工作中的调优能够提供很多的帮助,而且建议也更加客观和全面。但是使用addmrpt.sql的时候还是有些慢, 可以使用如下的脚本来定制addm,能够根据快照生成指定的addm报告。 脚本的内容如下: 相比于定制awr,ash要略微有一些难度。对于addm目前只提供了文本格式的内容,所以格式的处理上没什么特别的地方,不用考虑html格式的兼容性。 TASK_NAME=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <<END set pagesi
jeanron100
2018/03/15
5840
SQL调优和性能监控利器SQL Monitor
SQL Monitor是Oracle官方提供的自动监控符合特定条件的SQL,用于收集执行时的细节信息的监控工具,常用于SQL调优和系统性能监控。
bisal
2022/02/11
1.6K0
SQL调优和性能监控利器SQL Monitor
AWR的基本知识
自从Oracle 10g开始支持AWR以后,相比于Statspack,除了有更多新的内容可供参考,HTML保存格式也是为查看文档提供了很多便利。
bisal
2019/01/29
8490
Oraccle SQL调优系列之ASH简介
我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315
SmileNicky
2022/05/07
1.1K0
Oraccle SQL调优系列之ASH简介
聊聊SQL优化的基础思路
SQL优化是Oracle数据库中比较难的部分,需要对Oracle数据库具备非常扎实的理论基础。但是在刚开始接触时,往往不能很好地将理论知识应用到实践,或者有了一定的思路,又不自信或不敢确定是不是正确的。那么如何入门将理论知识转化为实践经验?本文介绍一下基于ADDM与SQL tuning的SQL优化,希望入门学习者能够从中获取一定的收获。
数据和云
2021/05/31
6930
Oracle SQL调优系列之AWR报告简介
对于SQL调优,局部SQL,我们可以直接使用执行计划等直接调优,而对于整个系统来说?这时候就可以用Oracle系统自带的报告对系统进行整体分析了,Oracle提供好几种性能分析的报告,比如AWR、ASH、ADDM等等 这篇博客主要介绍AWR
SmileNicky
2022/05/07
1.6K0
Oracle SQL调优系列之AWR报告简介
【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
禁用与卸载Oracle AWR特性
    AWR需要禁用?这么好的东东。缺省的情况下,AWR是可以使用的,需要耗用一定的sysaux表空间。但涉及到有关AWR相关的调试包(需要license)会访问AWR视图或者awr异常又不想更新patch,甚至没有patch可用的情况下,我们可以禁用AWR以及卸载AWR,本文演示了如果禁用AWR功能以及卸载awr相关的数据字典。
Leshami
2018/08/13
7390
SQL调优和诊断从哪入手?
本文作为概要,包括如何定位SQL问题、SQL相关的问题类别以及诊断SQL性能问题需要的相关信息。
SQLplusDB
2020/11/12
9300
诊断工具与方法:从OS到数据库
最近在“云和恩墨微信大讲堂”中,有很多朋友遇到性能问题,但是往往没有及时的诊断信息。我将之前书中的一章摘录出来和大家略为分享。 在数据库系统的诊断中,通常须要综合分析两个方面的因素: 主机系统的采样分析数据; 数据库系统的采样分析数据。 其中主机的采样数据可以通过操作系统的相关工具来收集,Nmon(可以用于AIX和Linux)和Oracle的OSWatcher都是很不错的轻量级采样工具;数据库的采样分析数据则可以通过Oracle的AWR采样数据获得,前者需要手工部署,后者自Oracle Database
数据和云
2018/03/05
2K0
诊断工具与方法:从OS到数据库
【DB笔试面试819】在Oracle中,什么是AWR?
ASH(Active Session History,活动会话历史信息)、AWR(Automatic Workload Repository,自动负载信息库)、ADDM(Automatic Database Diagnostic Monitor,数据库自动诊断监视工具)是Oracle性能调整的三把利剑,需要深入地了解,但是面试一般都问得比较简单,主要问到的是AWR。
AiDBA宝典
2020/06/17
1.7K0
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
9670
Oracle 如何使用 SQLT 进行 SQL 调优
深入解析和定制Oracle优化工具
首先不会Oracle的我觉得也可以听懂。哈哈,因为我不会专门讲oracle里的太细的东西。这部分的内容比较通用,可以借鉴思路。 我会在我的平台里面糅合这些思想,总之有货有料之后,加上时间和精力,就好比阳光空气水。 ppt有一部分是我在InfoQ的一次大会上做的一个简单的分享,今天在原来的ppt基础上重新做了一番解读。 这是我眼中的一些问题,有些Oracle已经做好了,对于一个成熟的商业软件来说,尽管功能上满足了,还是有些地方值得改进,或者说他们做得还不够好的地方。 这也体现了处理问题的几个阶段,有
jeanron100
2018/03/22
8720
深入解析和定制Oracle优化工具
【SQL Performance】实时SQL监控功能(Real-Time SQL Monitoring)
实时SQL监控功能(Real-Time SQL Monitoring)是Oracle11g推出的功能,通过这个功能可以实时地监视执行中的SQL性能。
SQLplusDB
2020/03/26
1.7K0
使用SQL tuning advisor(STA)自动优化SQL
      Oracle 10g之后的优化器支持两种模式,一个是normal模式,一个是tuning模式。在大多数情况下,优化器处于normal模式。基于CBO的normal模式只考虑很小部分的执行计划集合用于选择哪个执行计划,因为它需要在尽可能短的时间,通常是几秒或毫秒级来对当前的SQL语句进行解析并生成执行计划。因此并不能保证SQL语句每次都是使用最佳的执行计划。而tuning模式则将高负载的SQL语句直接扔给优化器,优化器来自动对其进行详细的分析,调试并给出建议,这就是Oracle 提供的Automatic Tuning Optimizer,即自动调整优化器。Oracle 自动调整优化器通过SQL调优建议器(SQL tuning advisor)来体现。
Leshami
2018/08/14
1.7K0
使用SQL tuning advisor(STA)自动优化SQL
Oracle SQL调优系列之AWRDD报告简介
我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315
SmileNicky
2022/05/07
4990
Oracle SQL调优系列之AWRDD报告简介
相关推荐
Oracle 12.2新特性掌上手册 - 第六卷 ADG的性能与诊断
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文