首页 / ORACLE / oracle执行计划打印
oracle执行计划打印
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle执行计划打印,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3809字,纯文字阅读大概需要6分钟。
内容图文
![oracle执行计划打印](/upload/InfoBanner/zyjiaocheng/525/6e7e7fa60ca543d5b5a4326d0f6909bf.jpg)
方式一:explain plan for
使用explain plan for,这种查询方式适合查看单条执行SQL的执行计划。explain plan for的查看方式也有两种:
1、 plsql的F5快捷键:登录plsql?按F5—>plsql会打开开一个窗口—>编写sql命名并执行—>会有刚执行sql的执行计划打印出
2、 命令窗口或者登录数据库后台执行—>explain plan for sql语句;?再执行select from table(dbms_xplan.display);-->会有执行计划打印出
注意:这种方式的执行计划只是预估值,并非真正的执行计划
方式二set autotrace on
这种方式不能再plsql下进行(目前我发现在不能在plsql下进行),只能在sqlplus下进行。(如果你问我sqlplus是啥,关机睡觉吧)
SQL> set autotrace on
SQL> select from A; #这句是你执行的sql,只能说这么细,再说细点感觉就是你对的侮辱
上一句执行后就会展现你的执行计划信息。
当然是用set autotrace on有时会报Cannot SET AUTOTRACE的错。小弟这里提供一个脚本,脚本的原理自己看内容(估计也没几个人喜欢看,哈哈)。当前脚本在oracle用户下执行。(不知道是小弟眼拙还是真的不能上传文件,脚本上传不了,大致内容如下:
#!/bin/sh
utlxplan_url=
find $ORACLE_HOME -name "utlxplan.sql"
plustrce_url=
find $ORACLE_HOME -name "plustrce.sql"
sqlplus / as sysdba <<EOF@${plustrce_url}
br/>@${plustrce_url}
grant plustrace to scott;
exit;
EOF
)
方式三 视图
通过查询v$sql和V$SQL_PLAN两个视图来查询
第一步:查询v$sql表根据sql_text(执行的SQL)获取sql_id
第二步:根据上一步得到的sql_id查询V$SQL_PLAN表的中对应的执行计划
个人常用方法:简单暴力哈哈
方式四 awrsqrpt.sql
认识的多个大佬常用的方法:
第一步:
使用dba用户登录 sqlplus / as sysdba
第二步:
执行
SQL> @?/rdbms/admin/awrsqrpt.sql
会出现以下页面:
pecify the Report Type
Would you like an HTML report, or a plain text report?
Enter ‘html‘ for an HTML report, or ‘text‘ for plain text
Defaults to ‘html‘
Enter value for report_type:
这是让你选择输出的文件类型,选html吧,别问为什么,就是喜欢。
第三步:
回车后会出现如下页面:
Instances in this Workload Repository schema
DB Id Inst Num DB Name Instance Host
- 1564708553 1 ORCL orcl wcg
Enter value for dbid:
是让你选择要生成AWR报告的实例DBid:例如我的就选1564708553 然后回车
第四步:
回车会会出现如下页面
Using 1564708553 for database Id
Enter value for inst_num:
是让你选择要生成AWR报告的实例inst_num,例如我则选:1然后回车
第五步:
回车后会出现如下页面
Specify the number of days of snapshots to choose fromEntering the number of days (n) will result in the most recent (n) days of snapshots being listed. Pressing <return> without specifying a number lists all completed snapshots.
Enter value for num_days:
让你输入打印日志的天数(今天是1)
输入后回车
第六步:
回车后会出现如下页面
Listing the last day‘s Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
orcl ORCL 9 19 Jun 2020 21:51 1
10 19 Jun 2020 23:00 1
11 19 Jun 2020 23:31 1
Specify the Begin and End Snapshot Ids
Enter value for begin_snap:
让你选择填写要生成报告的begin_snap(也就是开始点)然后回车
第七步:
回车后出现如下页面
Enter value for end_snap:
让你选择填写要生成报告的end_snap(也就是结束点)然后回车
第八步:
回车后出现如下页面:
Specify the Report Name
The default report file name is awrrpt_1_9_10.html. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name:
然你输入日志的名称:例如wcg20200619.html 然后回车就会生成相应的执行计划
日志的生成路径一般在你的当前路径。也就是你在/opt/oracle下执行sqlplus / as sysdba 开始的打印之路。Name日志就会生成在/opt/oracle下
oracle执行计划打印
标签:v$sql oracle this ted 就会 是你 bin select find
本文系统来源:https://blog.51cto.com/13032630/2506069
内容总结
以上是互联网集市为您收集整理的oracle执行计划打印全部内容,希望文章能够帮你解决oracle执行计划打印所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。