数据堆大小

问题描述 投票:0回答:1

你能不能帮助我,因为我遇到了堆大小的问题。

我使用jdbc连接器连接到PostgreSQL数据库。我的表中有大约700万个数据。我必须将我的堆大小设置为大约4096 Mb(4 GB),以便我的作业不会因错误而失败:

java.lang.OutOfMemoryError:Java堆空间

到目前为止,我还没有找到解决方案,使用Fetch Size从这个连接器读取数据,就像Oracle Array Size一样。以下是使用提取大小时IBM的建议。

  1. 单一查询
  2. 自动提交被禁用
  3. 正确使用charset和字段长度。

所有都相应地设置,但我们无法正确使用提取大小。我们还使用java语言和获取大小测试了它并且它起作用,所以问题可能不在于驱动程序。

你们能跟我分享一下你的经历吗?任何人都有类似的问题,你是如何解决它,除了增加堆大小。事实上,我们不希望增加堆大小,我们希望使用适当的堆大小而不是使用相当大的堆大小来使连接器读取小数据包。

亲切的问候, Knlix。

datastage heap-size
1个回答
0
投票

您可以在此处执行以下操作:

  1. 将事务大小增加到10,000并减小数组大小。这将导致创建更小的数组,从而节省临时空间。
  2. 去使用APT_NOJOBMON env变量。这不会监视作业并节省空间。
  3. 您可以尝试在所需阶段检查正确的分区技术。
  4. 尝试将工作分解为多个工作和工作逻辑。例如:您在源上有一个SQL,它可以提取700万个数据。而不是在一个作业中将其拉到多个作业,然后通过块提取数据块,如果需要,可以一次性完成所有操作,或者只是让作业一个接一个地运行,以便在每个作业结束时清除临时空间工作。
  5. 如果可能,请求管理员增加数据存储空间
© www.soinside.com 2019 - 2024. All rights reserved.