解释存储过程中的查询计划

Mar*_*ddy 8 oracle

我有一个存储过程,包含一个单独的选择查询,用于根据对过程中的参数执行的一些次要数学插入到另一个表中.我可以通过某种方式引用过程来生成用于此查询的计划,还是必须复制并粘贴查询并为输入参数创建绑定变量?

Mik*_*ter 7

使用SQL Trace和TKPROF.例如,打开SQL*Plus,然后发出以下代码: -

alter session set tracefile_identifier = 'something-unique'
alter session set sql_trace = true;
alter session set events '10046 trace name context forever, level 8';

select 'right-before-my-sp' from dual;
exec your_stored_procedure

alter session set sql_trace = false;
Run Code Online (Sandbox Code Playgroud)

完成此操作后,请在数据库的UDUMP目录中查找文件名中包含"something-unique"的TRC文件.使用TKPROF格式化此TRC文件,然后打开格式化文件并搜索字符串"right-before-my-sp".存储过程发出的SQL命令应该在本节之后不久,并且紧接在该SQL语句下将是SQL语句的计划.

编辑:对于充分披露的目的,我要感谢所有那些谁给我的答案对这个线程上周,帮助我学习如何做到这一点.