Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема вставки большого количества строк / 5 сообщений из 5, страница 1 из 1
03.02.2021, 16:46
    #40041269
vgpframed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема вставки большого количества строк
Доброго дня!
Подскажите, пожалуйста, как решить мою проблему..
Есть база данных Postgres, соответственно, в ней есть таблица, на все поля наложен уникальный индекс, и пытаюсь добавить 500000 строк одной транзакцией, но упираюсь в то, что транзакция прерывается(точно не знаю на каком количестве строк) и данные не пишутся дальше, мне предложили вариант: после определенного количества строк делать commit, есть смысл это делать и если да, то как?
...
Рейтинг: 0 / 0
03.02.2021, 18:07
    #40041302
MikeR.Ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема вставки большого количества строк
По замыслу транзакции и надо делать маленькими и быстрыми. Не пытаться вставить все, спросить об этом пользователей и еще кое-что сделать. Если у вас есть данные по кол-ву записей, которые необходимо вставить, пронумеруйте их и разбейте не несколько пакетов. Обрамите в транзакции и будет понимание какой из пакетов отвалился.
...
Рейтинг: 0 / 0
03.02.2021, 19:18
    #40041334
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема вставки большого количества строк
vgpframed
Доброго дня!
Подскажите, пожалуйста, как решить мою проблему..
Есть база данных Postgres, соответственно, в ней есть таблица, на все поля наложен уникальный индекс, и пытаюсь добавить 500000 строк одной транзакцией, но упираюсь в то, что транзакция прерывается(точно не знаю на каком количестве строк) и данные не пишутся дальше, мне предложили вариант: после определенного количества строк делать commit, есть смысл это делать и если да, то как?


вообще в нормальной ситуации можно хоть 10 миллиардов строк вставить в одну таблицу одним запросом (делал такое пару раз по рабочей необходимости)... так что проблем нет
и никакой необходимости делать промежуточные коммиты особо нет (ну кроме того чтобы не держать открытую транзакцию сутками).

0.5M строк это вообще ниочем... через copy должно за минуту или меньше заливаться
если оно ломается - надо смотреть по логу базы и логу приложения что там происходит и почему.

ps: я надеюсь вы через COPY эту batch заливку сделали? (впрочем на 500k это особо ни на что не влияет)

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
03.02.2021, 21:33
    #40041360
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема вставки большого количества строк
Вы говорите, что на все поля наложен уникальный индекс
,может отваливается по нарушению уникальности.
...
Рейтинг: 0 / 0
04.02.2021, 12:10
    #40041512
DSKalugin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема вставки большого количества строк
500тыс - не в объёме дело, это точно. Можно и в одной транзакции.
Причин может быть масса, нет смысла угадывать. Нужно точное сообщение об ошибке (смотрите в логах).
Может банально кончается место на диске и т.д.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблема вставки большого количества строк / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]