Размер кучи данных - PullRequest
       24

Размер кучи данных

0 голосов
/ 18 марта 2019

Не могли бы вы помочь мне, потому что я застрял с проблемой размера кучи.

Я использую соединитель jdbc для подключения к базе данных PostgreSQL. У меня в таблице около 7 миллионов данных. Мне пришлось установить размер кучи около 4096 МБ (4 ГБ), чтобы моя работа не завершилась с ошибкой:

java.lang.OutOfMemoryError: пространство кучи Java

Пока что я не нашел решения для чтения данных из этого соединителя с использованием Fetch Size, как Oracle Array Size. Ниже приведены рекомендации IBM при использовании размера выборки.

  1. Одиночный запрос
  2. Автоматическая фиксация отключена
  3. Правильное использование charset и длины полей.

Все установлены соответственно, но мы не можем правильно использовать размер выборки. Мы также проверили его, используя язык Java и размер выборки, и это сработало, поэтому проблема может быть не в драйвере.

Можете ли вы, ребята, поделиться своим опытом со мной? У кого-то были похожие проблемы, как вы решили их, кроме увеличения размера кучи. На самом деле мы не хотим увеличивать размер кучи больше, чем это, мы хотели бы, чтобы соединитель считывал небольшие пакеты данных, используя умеренный размер кучи, а не довольно большой размер кучи.

С уважением,
Knlix.

1 Ответ

0 голосов
/ 18 марта 2019

Здесь вы можете сделать следующее:

  1. Увеличьте размер транзакции до 10 000 и уменьшите размер массива. Это приведет к созданию меньшего массива, что позволит сэкономить временное пространство.

  2. Перейти к использованию переменной env APT_NOJOBMON. Это не будет контролировать работу и сэкономить место.

  3. Вы можете попробовать проверить правильные методы разбиения на необходимых этапах.

  4. Попробуйте разбить задание на несколько заданий и логику задания. Например: у вас есть источник SQL, который извлекает 7 миллионов данных. Вместо того, чтобы извлекать одно и то же в одном задании, разбейте его на несколько заданий, затем извлекайте порцию данных по порциям, затем объединяйте их, если необходимо выполнить все сразу, или просто позволяйте заданиям запускаться одно за другим, чтобы временное пространство очищалось в конце каждого. работа.

  5. Если возможно, попросите администратора увеличить пространство в очереди данных

...