如何找到语句执行计划的产生时间?

[复制链接]
查看11 | 回复8 | 2012-7-12 18:47:29 | 显示全部楼层 |阅读模式
ORACLE 11204, RAC,
就这么多信息,我想找出语句执行计划的产生时间,该怎么找?


sql_plan_timestamp_20171106.jpg (146.02 KB, 下载次数: 27)
下载附件
2017-11-6 17:38 上传


回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
FIRST_LOAD_TIME
VARCHAR2(19)
Timestamp of the parent creation time
LAST_LOAD_TIME
VARCHAR2(19)
Time at which the query plan was loaded into the library cache

看来是最后那个时间?
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
你这个trace 主要是取至 V$SQL_MONITOR 和 V$SQL_PLAN_MONITOR,它们不会记录具体执行计划的产生时间。
所以你问执行计划产生的具体时间点这里看不到,但一定是在SQL开始执行Execution Started做解析之后产生的执行计划
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
Minsic 发表于 2017-11-7 09:38
看来是最后那个时间?

这里的两个时间,和楼主图片中的两个时间,不是一回事儿。
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
这里没有执行计划的产生时间,那得查其他视图才能得到,记得在其他贴里说到过。
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
本帖最后由 latch_free 于 2017-11-9 15:17 编辑
楼主纠结这个问题的原因是什么呢?
库缓存中没有了,v$视图也就对应查询不到,再次执行sql重新解析,再次生成;否则查询v$sql中的first_load_time;

回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
select * from dba_hist_active_sess_history s where s.sql_id='',运气好是可以的
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
stevendba 发表于 2017-11-13 17:48
select * from dba_hist_active_sess_history s where s.sql_id='',运气好是可以的

这不可靠,我要求的是可靠的查询方法,除非被从共享池里踢走,
回复

使用道具 举报

千问 | 2012-7-12 18:47:29 | 显示全部楼层
ZALBB 发表于 2017-11-13 22:08
这不可靠,我要求的是可靠的查询方法,除非被从共享池里踢走,

哪有什么可靠的方法,如果在share pool里面查询gv$sql,如果不在,只有查询我给你的表,这是每10s采集一次session的结果,通常是用来被还原现场的, 具体sql在dba_hist_sqltext
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行