powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Настройка для bulk update/insert
4 сообщений из 4, страница 1 из 1
Настройка для bulk update/insert
    #38883110
ebonfortress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть рид-онли база, в которую время от времени заливаются апдейты (типа таблица 50 миллионов строк, вставить 1 миллион, поменять 10 миллионов, UPDATE items i SET name = ii.name FROM items_import ii WHERE i.id = ii.id, такой запрос). Апдейт дико тормозит. Как можно ускорить процесс, с учетом того, что надежность не нужна вообще?
...
Рейтинг: 0 / 0
Настройка для bulk update/insert
    #38888842
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Вместо INSERT использовать COPY.
2. UPDATE мало того, что _будут_ тормозить, так еще в старых версиях (начало 2000) приводили к необходимости VACUM. В новых версиях не знаю.

Если "таблица 50 лямов, залить 1 лям и поменять 10" и время критично. Лично я бы подумал над тем, что бы взять C,Java etc, написать приложение. Все посчитать в приложении (оперативной памяти, каком нибудь хорошем и хитром контейнере, в общем, детали) и 50 лямов быстро, командой COPY залить в PostgreSQL.

IMHO
...
Рейтинг: 0 / 0
Настройка для bulk update/insert
    #38888850
думаецца
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevЛично я бы подумал над тем, что бы взять C,Java etc, написать приложение. Все посчитать в приложении (оперативной памяти, каком нибудь хорошем и хитром контейнере, в общем, детали) и 50 лямов быстро, командой COPY залить в PostgreSQL.
IMHO
можно на пустой базе даже в том же инстансе провести "расчет" выгрузкой SELECT в COPY -- это точно дешевле клиентского овна, но копи всем куском на табличке с триггерами тоже не подарок.


т.ч. проще всего -- написать в соседней базёнке того же интсанса нарезалку на батчи, и запустит dblink батчики на обработку. Примерно - по 1000 -- 10000 операций. (длинная транзакция висит в стороне - не лочит вакуумы в БД назначения и прочее)
...
Рейтинг: 0 / 0
Настройка для bulk update/insert
    #38888994
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ebonfortressЕсть рид-онли база, в которую время от времени заливаются апдейты (типа таблица 50 миллионов строк, вставить 1 миллион, поменять 10 миллионов, UPDATE items i SET name = ii.name FROM items_import ii WHERE i.id = ii.id, такой запрос). Апдейт дико тормозит. Как можно ускорить процесс, с учетом того, что надежность не нужна вообще?

create table temp as
select coalesce(ii.name, i.name) from items i
left join items_import ii on i.id = ii.id

потом дропнуть items и переименовать items_import в items
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Настройка для bulk update/insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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