一、实时监控利器
- 动态性能视图查询
SELECT sql_id, sql_text, executions, elapsed_time/1000000 as elapsed_sec, cpu_time/1000000 as cpu_sec, disk_reads, buffer_gets FROM v$sql WHERE elapsed_time/1000000 > 5 -- 筛选执行超过5秒的SQL ORDER BY elapsed_time DESC;
复制
- 实时会话监控(每秒刷新)
SELECT s.sid, s.serial#, s.username, s.status, s.sql_id, q.sql_text, q.optimizer_cost FROM v$session s JOIN v$sql q ON s.sql_id = q.sql_id WHERE s.status = 'ACTIVE' AND s.type <> 'BACKGROUND';
复制
二、深度分析工具
- AWR报告生成步骤:
# 生成快照 EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); # 生成报告 @$ORACLE_HOME/rdbms/admin/awrrpt.sql
复制
关键分析指标:
- SQL ordered by Elapsed Time
- SQL ordered by CPU Time
- SQL ordered by Gets
- ASH实时分析:
SELECT sample_time, session_id, sql_id, event, blocking_session FROM v$active_session_history WHERE sql_id IS NOT NULL ORDER BY sample_time DESC;
复制
三、SQL Trace高级技巧
- 开启10046跟踪:
ALTER SESSION SET tracefile_identifier = 'slow_sql_trace'; ALTER SESSION SET events '10046 trace name context forever, level 12'; -- 执行待跟踪SQL EXIT;
复制
- TKPROF解析:
tkprof ora_12345.trc output.txt sys=no aggregate=yes sort=prsela,exeela,fchela
复制
四、执行计划分析
EXPLAIN PLAN FOR SELECT /*+ YOUR_HINT */ ...; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
复制
五、自动诊断工具
- SQL调优顾问:
DECLARE task_name VARCHAR2(30); BEGIN task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK( sql_id => 'g4yfu8q89kj7d', scope => 'COMPREHENSIVE', time_limit => 3600); DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name); END; /
复制
六、性能视图黄金组合
SELECT * FROM ( SELECT sql_id, ROUND(elapsed_time/1e6) elapsed_sec, executions, ROUND(elapsed_time/decode(executions,0,1,executions)/1e6,4) per_exec_sec, sql_text FROM v$sqlstats ORDER BY elapsed_time DESC) WHERE ROWNUM <= 10;
复制
注意事项:
- 诊断包授权:AWR/ASH需要Diagnostics and Tuning Pack许可
- 执行计划稳定性:注意SQL Profile和Baseline的影响
- 统计信息时效性:确保统计信息最新
- 绑定变量窥视:可能影响执行计划选择
通过以上方法的组合使用,可以快速定位TOP SQL,结合执行计划分析和SQL调优技术,能有效解决90%以上的数据库性能问题。建议建立定期性能分析机制,对历史SQL进行趋势分析,实现预防性优化。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
571次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
517次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
478次阅读
2025-04-01 11:08:44
墨天轮个人数说知识点合集
JiekeXu
464次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
462次阅读
2025-04-08 09:12:48
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
444次阅读
2025-04-22 00:20:37
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
444次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
421次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
406次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
391次阅读
2025-04-17 17:02:24