exection plan的问题

zhaoxichao 2003-06-23 05:20:32
用utlxplan.sql建立PLAN_TABLE表
输入“SET AUTOTRACE ON”,然后运行待调试的SQL语句。在给出查询结果后,ORACLE将显示相应的“执行计划”,包括优化器类型、执行代价、连接方式、连接顺序、数据搜索路径以及相应的连续读、物理读等资源代价。
但是plan_table表里面都没有内容
怎么回事?
exection plan应该到那个表或者视图中去找?
...全文
37 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenzhulz 2003-06-26
  • 打赏
  • 举报
回复
只需在待调试的SQL语句前加 explain plan 就行。

看 oracle 的文档中,关于 explain plan 的语法
zhaoxichao 2003-06-24
  • 打赏
  • 举报
回复
plan_table是一个表的话,那调试的记录保存在这个表里面吗?
beckhambobo 2003-06-24
  • 打赏
  • 举报
回复
plan_talbe是一个表,oracle有此解释.

还可以用pl/sql developer工具作测试,比较方便.
zhaoxichao 2003-06-24
  • 打赏
  • 举报
回复
我是要查看执行计划的节点有多少种
zhaoxichao 2003-06-24
  • 打赏
  • 举报
回复
谢谢armu80830(此情可待)
plan_talbe 不是一个视图或者表吗,除了在sqlplus中用select查看以外,没有别的办法了吗
cenlmmx 2003-06-24
  • 打赏
  • 举报
回复
up
zhaoxichao 2003-06-24
  • 打赏
  • 举报
回复
to wenzhulz(触丝)
“用 explain plan 语句会把分析结果自动追加到 plan_table 里,所以执行完 explain plan 之后,plan_table 里会有数据,除非你删除,否则这些数据一直在。”
请问怎么运行explain plan,不是在sqlplus里面运行吗?
wenzhulz 2003-06-24
  • 打赏
  • 举报
回复
用 explain plan 语句会把分析结果自动追加到 plan_table 里,所以执行完 explain plan 之后,plan_table 里会有数据,除非你删除,否则这些数据一直在。
但是在 sqlplus 里使用 set autotrace 则稍微有些不一样,因为 sqlplus 实际是与 oracle 内核交互的一个壳(shell),aotutrace 会借用 plan_table 暂时存储数据,但是显示结束之后,会自动删除 plan_table 里的相关纪录,所以当你是用 set autotrace 的时候,查询 plan_table 不会有记录。
blackest 2003-06-24
  • 打赏
  • 举报
回复
调试记录是不会记载这个表中的
这个表是用来分析sql语句的执行计划.
%oracle_home%\rdbms\admin\utlxpls.sql可以用来格式化显示最近的一条执行计划!
当然要想把执行计划和相应的统计信息显示完全,还要配置一些其他的参数!
black_snail 2003-06-23
  • 打赏
  • 举报
回复
SET AUTOTRACE ON
will not insert any records in plan table . But I feel it is enough to display them on the screen
armu80830 2003-06-23
  • 打赏
  • 举报
回复
1、执行解释
explain plan
set statement_id='TEST'
for
select ....(你的待调试SQL语句)

2、查看调试结果
select * from plan_talbe where statement_id='TEST'

zhaoxichao 2003-06-23
  • 打赏
  • 举报
回复
up

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧