重庆思庄Oracle、Redhat认证学习论坛
标题:
utlrp.sql脚本HANG住
[打印本页]
作者:
mahan
时间:
2024-12-29 07:53
标题:
utlrp.sql脚本HANG住
脚本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参数不够而导致并行进程无法派生,进而导致编译失败。
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2