oracle – 如何为整个存储过程生成解释计划

前端之家收集整理的这篇文章主要介绍了oracle – 如何为整个存储过程生成解释计划前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通常在sqlplus中使用以下代码生成解释计划:
SET AUTOTRACE ON
SET TIMING ON
SET TRIMSPOOL ON
SET LINES 200
SPOOL filename.txt
SET AUTOTRACE TRACEONLY;

{query goes here}

SPOOL OFF
SET AUTOTRACE OFF

但是如果我想为存储过程生成解释计划呢?

有没有办法为整个存储过程生成解释计划? SP没有输入/输出参数.

您正在生成内容被正确地称为“执行计划”. “解释计划”是用于生成和查看执行计划的命令,就像您的示例中的AUTOTRACE TRACEONLY一样.

根据定义,执行计划适用于单个sql语句. PL / sql块没有执行计划.如果它包含一个或多个sql语句,那么每个语句都将具有执行计划.

一种选择是从PL / sql代码手动提取sql语句并使用您已经显示的过程.

另一种选择是激活sql跟踪然后运行该过程.这将在服务器上生成一个跟踪文件,其中包含会话中执行的所有语句的执行计划.跟踪是相当原始的形式,因此通常最容易使用Oracle的TKPROF工具对其进行格式化;还有各种第三方工具可以处理这些跟踪文件.

猜你在找的Oracle相关文章