全网最全的解读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 路径。
这儿有一个例子:

如果数据库 没有启用 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 模式)
Oracle ACE(Oracle和MySQL数据库方向)
华为云最有价值专家
《MySQL 8.0运维与优化》的作者
拥有数十项数据库认证
曾任IBM公司数据库部门经理
20+年DBA经验,服务2万+客户
精通C和Java,发明两项计算机专利
两次获得国家部级奖
推荐文章👇
从我的经历看IT工程师能干到退休吗?号主在certview.oracle.com网站上的证书清单截图:

欢迎关注我的公众号,一起学习数据库技术,分享职业发展的思考。
欢迎加我的微信,拉你进微信群





