获取存储过程 sqlplus 的执行计划
Posted
技术标签:
【中文标题】获取存储过程 sqlplus 的执行计划【英文标题】:obtaining an execution plan on stored procedure sqlplus 【发布时间】:2012-05-23 19:53:10 【问题描述】:所以我对使用 sqlplus 和查看执行计划还很陌生。 我通常做的如下:
set timing on;
set autotrace on;
"sql statement goes here"
我知道这通常是针对简单/单独的 sql 语句执行的,而您不能对存储过程执行相同的操作。
但我想知道是否要从存储过程中取出所有 sql 语句并将它们放入脚本中,然后一个接一个地运行。或者只是运行整个过程。有没有办法可以将每个执行计划记录到一个 txt 文件中,以便我查看它们。
或者有没有办法查看存储过程的执行计划?
非常感谢任何帮助或建议。谢谢
【问题讨论】:
您必须使用EXPLAIN PLAN
手动执行一个/一个语句,但不能为整个 SP 完成。
【参考方案1】:
我还没有尝试过,但我认为你可以。 DBMS_XPLAN.DISPLAY_CURSOR 使用 sql_id。您必须在过程中查找 DML 语句的 sql_id,这可能有点麻烦,但我认为它们应该在缓存中保留足够长的时间。
如果您尝试分析 PL/SQL 块的性能,您可能还想查看DBMS_PROFILER。
【讨论】:
以上是关于获取存储过程 sqlplus 的执行计划的主要内容,如果未能解决你的问题,请参考以下文章