在Oracle 11g中获取实际执行计划

时间:2013-01-30 03:14:46

标签: sql oracle oracle11g toad

我已阅读此postthis优秀文章

我的问题是,如何在Oracle 11g中获得 acutual 执行计划

没有 sys权限和DBA权限。 (您可以将我的案例视为只读用户)

我可以在SYS.PLAN_TABLE$

中使用TOAD CTRL + E 获取解释计划

但我的理解是解释计划=仅估计执行计划?

在Oracle的文档中找到

  

执行计划可能因以下原因而有所不同:

  •   

    不同的架构

  •   

    不同的费用

请提供任何帮助以清除我的概念。

2 个答案:

答案 0 :(得分:4)

如果您想使用dbms_xplan.display_cursor,则需要at least these grants

grant select on sys.v_$sql_plan to larry;
grant select on sys.v_$session to larry;
grant select on sys.v_$sql_plan_statistics_all to larry;

您可能还需要V$SQL才能找到SQL_ID

grant select on sys.v_$sql to larry;

答案 1 :(得分:2)

如果您是开发人员,也许我可以请求SELECT_CATALOG_ROLE授予您。在11g中授予它是无害的。这将允许对DBA拥有的大多数信息进行只读访问。

这将使您可以访问v $ sql_plan *,v $ session_longops,V $ lock,V $ SQL_BIND_CAPTURE 和其他与绩效相关的数据。