oracle怎么查看执行计划

前言

本文主要讲oracle数据库三种查看执行计划的方式,无水文,直接上干货。

方式一:通过数据库连接工具来查看

基本上所有数据库连接工具都支持我们查看sql的执行计划,这里就使用sqlplus图形化工具以及DBeaver来进行演示

(一) sqlplus图形化工具

双击选中要查看执行计划的sql,然后点击【工具】-【解释计划】就可以开启一个解释计划窗口,这个窗口会展示具体的执行计划。



(二)DBeaver工具

双击选中要查看执行计划的sql,然后点击【SQL编辑器】-【解释执行计划】就可以看到具体的执行计划了



方式二:在sqlplus中使用dbms_xplan查看执行计划

方式一本质上应该就是对方式二的封装,如果在手头没有数据库图形化连接工具的话,可以用这种方式来查看执行计划。第一条sql的作用是获取执行计划,但这个结果并不会输出出来,我们需要结合dbms_xplan来进行查看。

explain plan for select * from table1
select * from table(dbms_xplan.display);

方式三:使用set autotrace on

在sqlplus中使用set autotrace on命令,后续的所有sql一致性就会输出包含执行计划、执行结果、静态统计数据在内的所有数据。


需要注意的是,方式三和前两种方式最大的不同点就是它不仅会输出执行计划,还会输出执行结果,也就是说要等到sql完全执行后,才有最终的结果输出出来。

我们还可以通过其他语句来开启sqlplus不同的输出结果。

set autotrace on                 (得到执行计划,输出执行结果)
set autotrace traceonly          (得到执行计划,不输出执行结果)
set autotrace traceonly explain  (得到运行计划,不输出运行结果和统计信息部分,仅展现运行计划部分)
set autotrace traceonl statistics(不输出执行结果和执行计划部分,仅展现统计信息部分)

ps:这个命令笔者试过后应该只是在当前会话有效,退出会话后就无效了。

小结
一般来说,有数据库连接工具就优先用连接工具看就行了,图形化界面简单易操作。如果需要更加详细的信息(详细到输出并行度等数据),那么建议使用方式三来查看。

posted @ 2023-10-08 15:46  moutory  阅读(5548)  评论(0编辑  收藏  举报  来源