Load Profile每秒指标直接决定硬件采购量,Logical Reads、Redo size等值需换算为内存带宽、磁盘吞吐等硬件参数;Per transaction指标揭示事务模型缺陷,如高DB Time/transaction伴低Physical Reads/transaction表明IO等待严重;Elapsed时间不匹配业务高峰则容量预测失真;Load Profile比Top 5 Timed Events更早反映负载变化,是容量规划核心依据。
Load Profile里的每秒指标直接决定硬件采购量
load profile不是性能“体检表”,而是数据库的“吞吐量计量器”。它用每秒值(per second)把抽象负载翻译成可换算的硬件需求:比如 logical reads 448,585 blocks/s 意味着缓冲区必须能支撑这个级别的内存带宽;redo size 超过 20mb/s 就要求日志磁盘的持续写入吞吐 ≥ 25mb/s(留20%余量),否则 log file sync 等待会上升。这些数字不经过换算,没法评估现有存储是否撑得住未来半年的业务增长。
Per transaction指标暴露事务模型缺陷
单看每秒值容易误判——高 Physical Reads 可能是100个大事务造成,也可能是1万个小微事务反复刷盘。这时要看 Physical Reads per transaction 和 DB Time per transaction 的比值:
- 若
Physical Reads是 11.3 blocks/transaction,但DB Time高达 6.4s/transaction,说明每次事务都在等IO,缓存或索引设计有问题,扩容前得先优化SQL - 若
Redo size是 120KB/transaction,而平均事务只改3行数据,大概率是没用绑定变量,导致硬解析+重复日志生成,这类问题加内存或CPU都无效 -
Parses> 300/s 或Hard parses> 100/s 时,即使CPU空闲,也会因library cache latch争用拖慢整体吞吐,这是典型的“软件配置瓶颈”,不是硬件问题
Load Profile和Elapsed时间不匹配就别信容量预测
AWR报告顶部的 Elapsed 时间必须和业务实际负载窗口一致。常见陷阱:
- 用2小时快照生成报告,但业务高峰只集中在其中15分钟——此时
Logical Reads平均值被稀释,按此扩容会严重低估峰值压力 - 报告里
Sessions从85降到80,但User calls却翻倍,说明连接池复用率下降、单会话负载激增,这种结构性变化比绝对数值更影响扩容决策 - 跨实例RAC环境里,
Load Profile默认聚合所有节点,但某节点Block Changes占比90%,意味着写热点集中,盲目按总值扩容可能让闲置节点浪费30%资源
对比基线时,Load Profile比Top 5 Timed Events更早报警
等待事件(如 db file sequential read)是“症状”,Load Profile是“生理指标”。当业务量上升15%,你往往先看到:
-
Logical Reads上涨25% → 缓存命中率开始下滑,但等待事件还没进Top 5 -
W/A MB processed翻倍 → 排序/哈希操作增多,PGA可能即将溢出到临时表空间,引发后续direct path write temp等待 -
Logons> 2/s 持续10分钟 → 连接风暴苗头出现,但此时enq: TX或latch: shared pool还未爆发
这些变化在Load Profile里是线性可测的,而等待事件有滞后性。容量规划真正要防的,是这些尚未触发告警但已突破历史基线10%以上的指标。


















