在数据库上执行SQL语句,执行完毕或执行过程中可以通过如下语句查询到 SQL_ID 。 select * from v$sql where sql_text like '%SELECT BOOK.DESCRIPTION AS%' order by first_load_time desc ; (2). 在数据库上执行如下语句。 select dbms_sqltune.report_sql_monitor(type=>'TEXT', sql_id=>'4t6jwa8nrg0dp',report_level=>'ALL') monitor_report from dual; 点击查询出来的"HUGECLOB"值,可以看到TEXT格式的详细执行计划(最好保存 为txt后以ultraEdit工具打开,看得比较清晰,这里不贴出来)。一般在SQL运行 后1-3分钟内可以取到结果,SQL执行超过一定时间后查询不出执行计划(已经被删除)。 注意:不是所有的SQL都会被monitor到,如果没有看到执行计划,可以在SQL中加入 提示 /*+monitor*/ 强制对SQL进行监控。 ------------------------------------------------------------------- 在Oracle 11g之前的版本,长时间运行的SQL可以通过监控v$session_longops来观察,当某 个操作执行时间超过6秒,就会被记录在v$session_longops中,通常可以监控到全表扫描、 全索引扫描、哈希联接、并行查询等操作;而在Oracle 11g中,当SQL并行执行时,会立即 被实时监控到,或者当SQL单进程运行时,如果消耗超过5秒的CPU或I/O时间,它也会被监 控到。监控数据被记录在v$sql_monitor视图中,也可以通过Oracle 11g新增的package DBMS_MONITOR来主动对SQL执行监控部署。 v$sql_monitor收集的信息每秒刷新一次,接近实时,当SQL执行完毕,信息并不会立即从 v$sql_monitor中删除,至少会保留1分钟,v$sql_plan_monitor视图中的执行计划信息 也是每秒更新一次,当SQL执行完毕,它们同样至少被保留1分钟。查看执行计划type有 多种: type=>'TEXT' type=>'HTML' type=>'ACTIVE' -------------------------------------------------------------------
使用sql monitor获取更加详细的执行计划 - dbms_sqltune.report_sql_monitor
来源:这里教程网
时间:2026-03-03 12:52:16
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- ORACLE中seq$表更新频繁的分析
ORACLE中seq$表更新频繁的分析
26-03-03 - 重做日志管理
重做日志管理
26-03-03 - null值在oracle和mysql中的差异
null值在oracle和mysql中的差异
26-03-03 - oracle RAC 11g for linux 7的那些坑
oracle RAC 11g for linux 7的那些坑
26-03-03 - ORACLE 数据库服务器业务高峰期高危动作之IOSCAN(HPUNIX)
- Reasons for incorrect gl balance
Reasons for incorrect gl balance
26-03-03 - Oracle 12.2 学习系列(一)CDB多租户容器数据库
Oracle 12.2 学习系列(一)CDB多租户容器数据库
26-03-03 - 判断standby日志是否同步primary
判断standby日志是否同步primary
26-03-03 - 问鼎大师我的OCM之路——程向智
问鼎大师我的OCM之路——程向智
26-03-03 - oracle、mysql数据库窗口下执行操作系统命令
oracle、mysql数据库窗口下执行操作系统命令
26-03-03
