重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 686|回复: 0
打印 上一主题 下一主题

[Oracle] 查看真实执行计划

[复制链接]
跳转到指定楼层
楼主
发表于 2023-9-10 13:13:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sqlplus窗口执行:

step1:set statistics_level
alter session set statistics_level=ALL;
step2:执行业务sql
select /*+ monitor */ * from ... where ....;
step3:为了样式,设置linesize
set linesize 200 pagesize 300;
step4:查询真实执行计划
select * from table(dbms_xplan.display_cursor(null, null, 'iostats last'));
sqlplus一般要数据库管理员才可以使用,如果你不是dba,只能使用plsql developer的话,只能用下面的方法,方法是从培训中学到的


使用存储过程,SQL:


declare
  b1 date;
begin
  execute immediate 'alter session set statistics_level=ALL';
  b1 := sysdate - 1;
  for test in (
               /*业务SQL(sql后面不需要加";")*/
               select * from t) loop
    null;
  end loop;
  for x in (select p.plan_table_output
              from table(dbms_xplan.display_cursor(null,
                                                   null,
                                                   'advanced -bytes -PROJECTION allstats last')) p) loop
    dbms_output.put_line(x.plan_table_output);
  end loop;
  rollback;
end;
/

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-28 23:49 , Processed in 0.084730 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表