暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

utlrp.sql脚本

慢慢 2024-12-26
68

脚本utlrp.sql主要用于编译无效包。执行期间主要调用utlprp.sql脚本。相关代码如下所示:

Rem ==========================================================================

Rem BEGIN utlrp.sql

Rem ==========================================================================

@@utlprp.sql 0

Rem ==========================================================================

Rem END utlrp.sql

Rem ==========================================================================

进一步研究文件utlprp.sql,可以看到,在默认情况下Oracle会调用存储过程utl_recomp.recomp_parallel并行编译无效包。当threads取值为0时,由Oracle根据参数cpu_count和parallel_threads_per_cpu自行决定并行度。脚本如下所示:

DECLARE

   threads pls_integer := &&1;

BEGIN

   utl_recomp.recomp_parallel(threads);

END;

/

有时候,由于Oracle bug 14065287,在启用并行编译无效对象时,脚本utlrp.sql会出现HANG现象,这时需要启用串行编译无效对象,如下所示:

BEGIN

   utl_recomp.recomp_serial();

END;

/

注意 启用并行编译时,在某些数据库版本中可能会由于process参数不够而导致并行进程无法派生,进而导致编译失败。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论