Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取存储过程sqlplus上的执行计划_Sql_Oracle_Plsql_Sqlplus - Fatal编程技术网

获取存储过程sqlplus上的执行计划

获取存储过程sqlplus上的执行计划,sql,oracle,plsql,sqlplus,Sql,Oracle,Plsql,Sqlplus,因此,我对使用sqlplus和查看执行计划相当陌生。 我通常会做以下工作: set timing on; set autotrace on; "sql statement goes here" 我知道这通常是针对简单/单独的sql语句执行的,而对于存储过程则不能执行同样的操作 但我想知道是否要将所有sql语句从存储过程中取出,并将它们放入脚本中,然后逐个运行。或者只是运行整个过程。是否有一种方法可以将每个执行计划记录到txt文件中,以便查看它们 或者有没有一种方法可以查看存储过程的执行计划 非

因此,我对使用sqlplus和查看执行计划相当陌生。 我通常会做以下工作:

set timing on;
set autotrace on;
"sql statement goes here"
我知道这通常是针对简单/单独的sql语句执行的,而对于存储过程则不能执行同样的操作

但我想知道是否要将所有sql语句从存储过程中取出,并将它们放入脚本中,然后逐个运行。或者只是运行整个过程。是否有一种方法可以将每个执行计划记录到txt文件中,以便查看它们

或者有没有一种方法可以查看存储过程的执行计划


非常感谢您的帮助或建议。谢谢

我还没试过,但我想你可以。使用sql\u id。您必须在过程中查找sql\u id中的DML语句,这可能有点麻烦,但我认为它们应该在缓存中保留足够长的时间


如果您试图评测PL/SQL块的性能,您可能还需要查看

您必须使用
EXPLAIN PLAN
手动执行一条/一条语句,但不能对整个SP执行此操作。