【问题标题】:Package compilation in a production environment. Can this cause any problems?生产环境中的包编译。这会导致任何问题吗?
【发布时间】:2011-10-07 08:38:47
【问题描述】:

我们最大的客户(1500 亿美元的营业额)担心在线生产期间编译包会导致数据库挂起。

我认为这是不可能的,因为我要编译的包是单独的和孤立的。它们用于更正数据或分析它们。

我的主管告诉了一些关于 SGA 的事情?有可能吗?

你怎么看?

【问题讨论】:

    标签: oracle stored-procedures plsql compilation


    【解决方案1】:

    在以下情况下,在线生产中编译 PL/SQL 包会出现问题:

    • 包当前正在执行,或者
    • 包具有状态(例如主体变量)并已在仍登录的会话之一中使用

    前者可以阻塞会话(很可能只是由于库缓存引脚锁定而编译包的会话),后者将导致在编译后再次尝试使用包的所有会话中出现以下错误消息:

    ORA-04061: existing state of package body "SCHEMA.PACKAGE" has been invalidated
    

    我认为没有与 SGA 相关的任何具体问题。

    【讨论】:

    • 如果我使用 PRAGMA 指令在每次使用后刷新包变量,我可以解决第二个问题吗?当我意识到问题时,我该如何继续?
    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2013-04-04
    相关资源
    最近更新 更多