Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 ERROR: out of memory  [new]
polin11
Member

Откуда:
Сообщений: 160
Использую СУБД Postgresql, пытаюсь вставить 176 000 записей в таблицу, падает ошибка
Ошибка выполнения SQL команды: ERROR: out of memory
DETAIL: Failed on request of size 33554321
Подскажите какую настройку PG сервера посмотреть и как изменить, чтобы ошибка не падала?
26 мар 21, 13:32    [22300339]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
Guzya
Member

Откуда:
Сообщений: 712
Покажите work_mem, shared_buffers.
Сколько оперативы на сервере?
26 мар 21, 16:54    [22300451]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
polin11
Member

Откуда:
Сообщений: 160
Guzya,
RAM 6 Gb
work-mem 3 Mb
shared_buffers 1,5 Gb

Сообщение было отредактировано: 26 мар 21, 17:14
26 мар 21, 17:20    [22300484]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4691
polin11,

А как именно вы пытаетесь вставить в таблицу ваши записи?

ps: зачем вы рабочие вопросы пытаетесь на калькуляторе слабее китайского смартфона решать?


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
26 мар 21, 18:06    [22300506]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52916
polin11
shared_buffers 1,5 Gb

И PG 32-х разрядный, небось?..
27 мар 21, 14:42    [22300771]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
mefman
Member

Откуда:
Сообщений: 3372
polin11
Guzya,
RAM 6 Gb
work-mem 3 Mb
shared_buffers 1,5 Gb

в рамках сессии сделайте
set work_mem = 50MB
27 мар 21, 15:10    [22300782]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
polin11
Member

Откуда:
Сообщений: 160
Maxim Boguk,
Увеличил work_mem до 100мб ошибка та же

ERROR: out of memory
SQL-состояние: 53200
Подробности: Failed on request of size 33554321

Таблица с иерархическими данными, у каждой записи должен быть ид. родительской записи, поэтому создается
функция внутри которой через INSERT вставляются записи по уровням иерархии, для каждого уровня получаем через RETURNING ид вставленной записи, затем этот ид. добавляем дочерним записям

версия
"PostgreSQL 10.11 on x86_64-pc-linux-gnu, compiled by gcc (GCC) (Red Hat 4.8.5-39), 64-bit"
5 апр 21, 17:38    [22304684]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
mefman
Member

Откуда:
Сообщений: 3372
polin11

Таблица с иерархическими данными, у каждой записи должен быть ид. родительской записи, поэтому создается
функция внутри которой через INSERT вставляются записи по уровням иерархии, для каждого уровня получаем через RETURNING ид вставленной записи, затем этот ид. добавляем дочерним записям

тогда
автор
зачем вы рабочие вопросы пытаетесь на калькуляторе слабее китайского смартфона решать?
5 апр 21, 18:28    [22304725]     Ответить | Цитировать Сообщить модератору
 Re: ERROR: out of memory  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4691
polin11
Maxim Boguk,
Увеличил work_mem до 100мб ошибка та же

ERROR: out of memory
SQL-состояние: 53200
Подробности: Failed on request of size 33554321

Таблица с иерархическими данными, у каждой записи должен быть ид. родительской записи, поэтому создается
функция внутри которой через INSERT вставляются записи по уровням иерархии, для каждого уровня получаем через RETURNING ид вставленной записи, затем этот ид. добавляем дочерним записям

версия
"PostgreSQL 10.11 on x86_64-pc-linux-gnu, compiled by gcc (GCC) (Red Hat 4.8.5-39), 64-bit"


Это уже не "пытаюсь вставить 176 000" а сложный ETL которому памяти может быть надо изрядно
или ваш код по памяти течет...
чтобы точно сказать что не так - надо и функцию анализировать и методику ее вызовов... и смотреть что у вас с памятью на смартфоне
это явно выходит за пределы форума.

ps: просто вставить 200.000 строк через copy в таблицу можно и на 128MB сервере если аккуратно все настроить.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Сообщение было отредактировано: 5 апр 21, 19:42
5 апр 21, 19:50    [22304763]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить