解读 “SQL ordered by Physical Reads (UnOptimized)“

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

在 Oracle AWR 报告的 "SQL Statistics" 部分中,有一个名为 "SQL ordered by Physical Reads (UnOptimized)" 的列表,它展示了在执行过程中产生未优化读请求(UnOptimized Read Requests)最多的 SQL 语句。

这个列表可以用来评估 Smart Flash Cache 或 Exadata Smart Scan 在 SQL 层面上的利用效率。

在启用了 Smart Flash Cache 的 Oracle 数据库中,每一次物理读请求(Physical Read Request)都可以被分类为:

  • Optimized Read Request:表示该读请求直接从 Smart Flash Cache(或 Exadata V2 的 Smart Flash Cache)中被满足,无需访问磁盘;
  • UnOptimized Read Request:表示该请求未被Smart Flash Cache命中,而是走了传统的磁盘 I/O 路径。

这儿有一个例子:

在这个例子中,可以看到该 SQL 一共发生了 240 次物理读请求,其中只有 30 次 是传统的物理读请求。

剩下的 210 次(240 - 30) 都由 Smart Flash Cache 优化处理,命中率为 210 ÷ 240 = 87.5%。

这意味着 Smart Flash Cache 成功地承担了该 SQL 绝大多数的 I/O 负载。

如果数据库 没有启用 Smart Flash Cache,则所有读请求都是未优化读(UnOptimized Read)。

此时,"UnOptimized Read Reqs" 与 "Physical Read Reqs" 数值完全相同;并且"%Opt" 值为 0。

因此,"SQL ordered by Physical Reads (UnOptimized)" 与 "SQL ordered by Reads" 实际上会显示相同的 SQL 列表,都是按照物理读量排序的 SQL。

即使如此,该列表依然有价值,可用于识别 I/O 负载最高的 SQL 语句。

以下是同一个 SQL 在两个列表中的表现:


这两个列表看起来非常相似,但度量的维度略有不同:

"SQL ordered by Reads" 中的 Physical Reads 表示 读取的数据块数(blocks);

"SQL ordered by Physical Reads (UnOptimized)" 中的 Physical Read Reqs 表示 I/O 请求次数(requests)。

通过对比两者,可以估算出平均每次 I/O 请求读取了多少个数据块。

在上面的例子中,两者的数值几乎一致,说明 Oracle 每次 I/O 大约只读取一个数据块(即小块 I/O 模式)

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

关于号主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)
  • 华为云最有价值专家
  • 《MySQL 8.0运维与优化》的作者
  • 拥有数十项数据库认证
  • 曾任IBM公司数据库部门经理
  • 20+年DBA经验,服务2万+客户
  • 精通C和Java,发明两项计算机专利
  • 两次获得国家部级奖
相关推荐
得物技术27 分钟前
指标平台:从语义底座到智能消费的实践路径|得物技术
数据库·人工智能·ai编程
StarRocks_labs35 分钟前
当大模型调用进入执行引擎:StarRocks AI Function 全新能力解析
数据库·starrocks·sql·ai·pipeline·数据处理·join
TDengine (老段)42 分钟前
TDengine 常见问题 TOP4
数据库·物联网·时序数据库·tdengine·涛思数据·升级·tdengine 问题
小蒜学长1 小时前
基于RFID技术的仓储管理系统设计(代码+数据库+LW)
java·数据库·spring boot·后端·rfid技术·仓储管理
梦影_1 小时前
Langchain简单快速上手教程(五)——聊天模型之流式传输
java·数据库·人工智能·python·langchain
润乾软件1 小时前
SQLazy:找出含 5 个以上连续字母表顺序字母的字符串
sql·sqlazy
数据狐(Datafox)1 小时前
1688商品列表API接口解析(附 JSON 样例)
java·开发语言·数据库·爬虫·json
adinnet20262 小时前
客服与工单:响应时长与满意度问数
数据库·人工智能
文人sec2 小时前
MYSQL:insert...select:为什么锁源表的所有行和间隙?怎么最快地复制一张表?
数据库·python·mysql
oradh3 小时前
Oracle联机日志文件损坏故障总结
数据库·oracle·oracle联机日志文件损坏