Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ускорение удаления / 5 сообщений из 5, страница 1 из 1
19.02.2008, 20:38
    #35142652
Ivan L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение удаления
Всем здрасти, вопрос Знатокам.
Дано Postgres 7.4, в нем табличка примерно 600000 записей, удаляем путем выполнения запроса позаписно (не я придумал :( ) при этом удаление 10000 записей занимает 18 часов, примерно 9 секунд на один statement.
Вопро как ускорить это безобразие.
PS. На таблице весят 2 индекса.
...
Рейтинг: 0 / 0
19.02.2008, 23:28
    #35142867
Sad Spirit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение удаления
Ivan L
удаляем путем выполнения запроса позаписно
PS. На таблице весят 2 индекса.
Убрать индексы, убрать внешние ключи. Не удалять по одной записи, удалять пачкой (на худой конец группировать удаления в транзакцию). Postgres 7.4 вышел 4 с лишним года назад, пора обновиться.
...
Рейтинг: 0 / 0
20.02.2008, 06:05
    #35143015
deleter1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение удаления
Недавно удалял 18 млн записей.. Кусками гдето по 1 мл.н.. Заняло ~3-5 часов. PG 8.2. Если есть задача постоянно чистить таблицу - обновись и присмотрись к партиционированию. Там можно удалять миллионы записей за пару секунд удалением партиции.
...
Рейтинг: 0 / 0
20.02.2008, 06:44
    #35143030
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение удаления
Ivan LВсем здрасти, вопрос Знатокам.
Дано Postgres 7.4, в нем табличка примерно 600000 записей, удаляем путем выполнения запроса позаписно (не я придумал :( ) при этом удаление 10000 записей занимает 18 часов, примерно 9 секунд на один statement.
Вопро как ускорить это безобразие.
PS. На таблице весят 2 индекса.
Что-то меня беспокоят эти цифры. 600 тыс. записей, это фигня для операции удаления, даже на 7.4.
1. Может на таблицу есть Constraint'ы? Для сравнения, есть таблица милионник, на нее более 150 внешних ключей (причем более половины каскадных), вот там действительно удаление одной записи занимает 8-10 секунд.
2. Делается ли VACUUM периодически?
3. Какое условие на удаление? Сколько времени выполняется запрос по этому же условию? Покажите план такого запроса.
4. Может действительно обрамлять удаление в транзакцию? По 100, 500 или 1000 записей?
...
Рейтинг: 0 / 0
20.02.2008, 23:07
    #35145944
Ivan L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение удаления
Большое всем спасибо за рекомендации, вчерась и сам к вечеру дошел до идеи пакетного удаления, что дало выигрыш в производительности во много раз :) с 18 часов до 40 секунд :( но это потребовало по итогам модернизации логики приложения написанного давно и не мной :), а на счет 7.4 :( это выкидыш еще известен как Линтер-ВС и менять его никто не даст :(
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ускорение удаления / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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