Skip to content

Oracle 性能优化

数据库性能优化是运维工作的核心之一。本文记录常见的性能优化方法论。

@?/rdbms/admin/awrrpt.sql

下面是 Oracle 性能优化相关视频:

  • DB Time:数据库活动时间
  • Load Profile:每秒事务数、逻辑读、物理读
  • Top 5 Timed Events:最耗时间的等待事件
  • SQL ordered by Elapsed Time:耗时最长的 SQL
EXPLAIN PLAN FOR
SELECT * FROM employees WHERE department_id = 10;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
SELECT * FROM TABLE(
DBMS_XPLAN.DISPLAY_CURSOR(sql_id => 'abc123', format => 'ALLSTATS LAST')
);
等待事件 说明 可能原因
db file sequential read 单块读 索引扫描、I/O 瓶颈
db file scattered read 多块读 全表扫描
log file sync 日志同步 commit 频繁、I/O 慢
enq: TX - row lock contention 行锁争用 热点数据更新
latch: cache buffers chains 缓存链锁 热点块
SELECT event, COUNT(*)
FROM v$session
WHERE status = 'ACTIVE'
GROUP BY event
ORDER BY 2 DESC;
  1. 先定位后优化:通过 AWR 找到瓶颈
  2. 关注 SQL:80% 的性能问题来自低效 SQL
  3. 合理索引:避免过度索引
  4. I/O 优化:使用 ASM、合理分布数据文件