【问题标题】:Oracle shared memory errorOracle 共享内存错误
【发布时间】:2009-12-11 19:08:20
【问题描述】:

以下查询在 10g 中生成以下错误:

 select DBMS_METADATA.GET_DDL('TABLE','TEST_TABLE','TEST') from dual; 

得到:

ORA-04031: unable to allocate 128 bytes of shared memory ("shared pool","SELECT /*+rule*/ SYS_XMLGEN(...","sql area","qeeOpt: qeesCreateOpt")
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1901
ORA-06512: at "SYS.DBMS_METADATA", line 2792
ORA-06512: at "SYS.DBMS_METADATA", line 4333
ORA-06512: at line 1

从一些阅读来看,这个问题似乎可以通过调整 Oracle 的一些共享内存参数来解决。

但是,任何人都可以就错误的可能原因提供一些额外的信息吗?这只是一个没有大约 10 列的表,所以如果查询本身是问题的根源,我会感到惊讶。此外,Toad 可以很好地显示我的所有 DDL。

我应该寻找什么?还是我应该将此错误发送给我的 DBA 并说“请修复?”

【问题讨论】:

  • 将其发送给您的 DBA。这就是他们付给他们半大钱的原因。

标签: sql oracle plsql oracle10g


【解决方案1】:

DBMS_METADATA 是一个非常大的 PL/SQL 包,它需要加载到共享池中。如果您希望它执行,则需要让 DBA 增加共享池。您也可能(在 9i 和 10i 上)需要增加 Java 池。在我看来,他们已经改变了 DBMS_METADATA 的内部结构,它不再需要那么多的 Java 池空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 2013-10-05
    • 2018-06-17
    • 2019-03-07
    相关资源
    最近更新 更多