Size: a a a

pgsql – PostgreSQL

2021 February 10

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Удалили много записей с предыдущими id, возможно?
Проще всего сделать:
VACUUM FULL item;
VACUUM ANALYZE item;

> ничего не помагает из вакуума, только truncate

Так, а "старые" транзакции (см. pg_stat_activity) есть (ну и так далее, но это скорее всего)?
Есть старые транзакции
источник

кн

коля николай... in pgsql – PostgreSQL
коля николай
Есть старые транзакции
из-за них он хипы не чистит?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
коля николай
из-за них он хипы не чистит?
Да, конечно. Вдруг эти записи понадобятся этим транзакциям, т.е. они решат обратиться к этой таблице?
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Да, конечно. Вдруг эти записи понадобятся этим транзакциям, т.е. они решат обратиться к этой таблице?
ну да логично, прикончил транзакции. Насколько быстро он вычистит все?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
коля николай
ну да логично, прикончил транзакции. Насколько быстро он вычистит все?
Легче (чем autovauum ждать и т.п.) запустить вручную, опять-таки:
VACUUM FULL item;
VACUUM ANALYZE item;
(поправил)
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Легче (чем autovauum ждать и т.п.) запустить вручную, опять-таки:
VACUUM FULL item;
VACUUM ANALYZE item;
(поправил)
теперь понятно, чего они изначально не работали...
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Легче (чем autovauum ждать и т.п.) запустить вручную, опять-таки:
VACUUM FULL item;
VACUUM ANALYZE item;
(поправил)
а можно как-то научить такую штуку жить без вакуума?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
коля николай
а можно как-то научить такую штуку жить без вакуума?
Какую? Если у Вас долгие транзакции — во всех изменяемых таблицах будет накапливаться bloat, поэтому от них стоит избавляться по мере возможности (как и в других СУБД, кстати — но там от этого просто проблемы другие).
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Какую? Если у Вас долгие транзакции — во всех изменяемых таблицах будет накапливаться bloat, поэтому от них стоит избавляться по мере возможности (как и в других СУБД, кстати — но там от этого просто проблемы другие).
убил транзакции, сделал vacuum full/analize item
источник

кн

коля николай... in pgsql – PostgreSQL
результата нет(
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
коля николай
убил транзакции, сделал vacuum full/analize item
Значит, либо "убили" не все, либо что-то другое "держит" xmin horizon.
Можете показать pg_stat_activity?
Кстати, когда будете делать VACUUM в следующий раз, добавьте VERBOSE — будет ясно, что там к чему, хотя бы.
Насчёт другого, что может задерживать очистку — см. pg_replication_slots и pg_stat_replication.
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Значит, либо "убили" не все, либо что-то другое "держит" xmin horizon.
Можете показать pg_stat_activity?
Кстати, когда будете делать VACUUM в следующий раз, добавьте VERBOSE — будет ясно, что там к чему, хотя бы.
Насчёт другого, что может задерживать очистку — см. pg_replication_slots и pg_stat_replication.
а что смотреть в pg_replication_slots и pg_stat_replication?
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Значит, либо "убили" не все, либо что-то другое "держит" xmin horizon.
Можете показать pg_stat_activity?
Кстати, когда будете делать VACUUM в следующий раз, добавьте VERBOSE — будет ясно, что там к чему, хотя бы.
Насчёт другого, что может задерживать очистку — см. pg_replication_slots и pg_stat_replication.
у меня единтсвенное что долго висело это репликации еще в активити (которые я не убил)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
коля николай
а что смотреть в pg_replication_slots и pg_stat_replication?
Вы сначала pg_stat_activity посмотрите ещё раз (а лучше — покажите).
А там — pg_stat_replication.backend_xmin, pg_replication_slots.xmin и catalog_xmin.
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Вы сначала pg_stat_activity посмотрите ещё раз (а лучше — покажите).
А там — pg_stat_replication.backend_xmin, pg_replication_slots.xmin и catalog_xmin.
источник

кн

коля николай... in pgsql – PostgreSQL
коля николай
а что смотреть в pg_replication_slots и pg_stat_replication?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Я тут ничего не вижу (особенно — полезного). Без screenshots, пожалуйста — существует текст (и paste sites). ;)
источник

кн

коля николай... in pgsql – PostgreSQL
Yaroslav Schekin
Я тут ничего не вижу (особенно — полезного). Без screenshots, пожалуйста — существует текст (и paste sites). ;)
backend_xmin null все
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
коля николай
backend_xmin null все
Этого не может быть — хотя бы у самого запроса будет backend_xmin. ;)
Ладно, если у других точно нет (и Вы под superuser, кстати?), то не оно.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
А эти xmin далеко от текущего?
источник