如何判断Oracle AWR报告中的SQL在多大程度能代表整个系统的负载?

全网最全面的Oracle AWR 专栏,持续更新中...

在分析AWR报告中的"SQL Statistics"章节前,首先要搞清楚:这些被捕获的SQL语句,在多大程度上是否能代表整个系统的负载?

在这个例子中,我们会看到:

捕获到的SQL仅占总DB Time的0.2%

在这种情况下,继续分析"Top SQL"列表几乎是浪费时间,因为它仅反映了极少一部分的系统工作量。

不过,判断"SQL ordered by Elapsed Time"列表的代表性并不那么简单。

列表中显示的百分比,反映的是捕获SQL占DB Time的比例,而不是SQL执行时间的比例。

在下面的例子中,Oracle显示捕获的SQL占总DB Time的59.2%。

乍一看,好像有40.8%的SQL执行时间没有被捕捉到。

但实际上,DB Time并不等同于SQL执行时间。

在这个例子中,我们查看AWR报告中的"Time Model Statistics"部分,可以发现"sql execute elapsed time"仅占DB Time的67.83%。

这意味着被捕获的SQL最多能占到全部负载的67.83%------而不是100%。

换算后,59.2 ÷ 67.83 ≈ 87%。

也就是说,捕获SQL实际上代表了约87%的SQL执行时间,这实际上是一个高度具有代表性的样本。

另一方面,捕获的PL/SQL执行时间占DB Time的67.5%,这表明大部分SQL实际上是在PL/SQL过程中执行的,且主要的PL/SQL过程都已被成功捕获。

捕获SQL比例越高,Top SQL列表的分析价值越大;反之则越低。

对于"SQL ordered by Elapsed Time"列表,建议始终将DB Time比例换算成SQL执行时间比例,才能判断其真正代表性。

另一个需要注意的问题是:Oracle不会把COMMIT和ROLLBACK视为普通SQL语句。

如果包含它们,COMMIT几乎总会出现在列表头位(类似MySQL的情况)。

此外,Oracle只会捕获在AWR快照时仍驻留在shared pool中的SQL语句(可在V$SQL等视图中查看)。

当捕获比例偏低时,常见的两种原因是:

  • 快照间隔太长:SQL可能在快照生成前被 aged out。解决方法是缩短AWR快照间隔。
  • SQL语句过于异构(未使用绑定变量):一个常见的现象是某些应用动态拼接SQL字符串,这样会导致生成大量"异构SQL",把shared pool挤满,使得许多SQL在快照生成之前就被挤出shared pool。如果遇到这类问题,可以查看ASH报告中的"Top SQL using literals"部分,通常会找到线索。

号主在certview.oracle.com网站上的证书清单截图。

关于号主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)
  • 华为云最有价值专家
  • 《MySQL 8.0运维与优化》的作者
  • 拥有数十项数据库认证
  • 曾任IBM公司数据库部门经理
  • 20+年DBA经验,服务2万+客户
  • 精通C和Java,发明两项计算机专利
  • 两次获得国家部级奖
相关推荐
科技小花5 小时前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
X56616 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
虹科网络安全7 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
2301_771717218 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
小江的记录本8 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi8 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
dFObBIMmai9 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw09 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
czlczl200209259 小时前
利用“延迟关联”优化 MySQL 巨量数据的深分页查询
数据库·mysql
ACP广源盛1392462567310 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑