【问题标题】:db2 storage error when running stored procs运行存储过程时出现 db2 存储错误
【发布时间】:2009-04-01 11:23:04
【问题描述】:

在我们的应用程序中运行少量存储过程时,我看到了上述错误。我们得到的实际错误是 sqlcode=-930,根据 db2 文档,它是:“没有足够的存储空间来处理该语句。”

问题:如何增加这些 procs 的可用存储空间?有没有其他人遇到过这个错误,如果有,你找到解决办法了吗?

谢谢

【问题讨论】:

  • 最好在标记 db2 以指定您的平台(LUW、iSeries 或 System z)时,因为解决方案和问题通常取决于该平台。

标签: sql database stored-procedures jdbc db2


【解决方案1】:

由于您还没有回答您使用的是哪个平台,所以我将首先在 AIX 上进行测试。

您需要查看 db2diag.log 以了解具体原因,但这通常是因为 AIX 已用完共享内存段。

AIX 共有 16 个共享内存段,其中 7 个可用于数据库。您的数据库实际使用的数量可以使用一个过于复杂的公式来计算,如果没有在故障排除指南中查找,我就无法记住。

但确实有可能一个数据库会使用 6 个段,只剩下一个。我见过这样的情况,内存映射的 I/O 请求与存储过程同时发生。

这两个都需要共享内存段,如果 I/O 先开始,存储过程将失败,如您所见。

解决此问题的方法是通过执行以下一项或多项操作来释放段:

  • 禁用内存映射 I/O。
  • 减少数据库对段的使用:您需要该公式,但我认为它涉及缓冲池、堆大小和锁定列表。
  • 如果不需要,请关闭 intra_parallel。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多