Size: a a a

pgsql – PostgreSQL

2021 March 26

AL

Alexey Lesovsky in pgsql – PostgreSQL
Baisak Sagynov
всем привет, размер этой таблицы 1,2 гб - это самая большая таблица, остальные меньше 100мб, там хранятся рассылки, чтобы уменьшит нагрузку хочу убрать индексы потому что выборка не особо с этой таблицы, и еще как запустить автовакум для этой таблицы, он давно не запускался, может поэтому раздулся? правильно ли мыслю?
решение запускать вакуум или нет, расчитывается по формуле
n_dead_tup >= ((reltuples * autovacuum_vacuum_scale_factor) + autovacuum_vacuum_threshold)
у вас, n_dead_tup = 149371, reltuples возьмите из pg_class, scale_factor и threshold из конфига и посчитайте, если полученная цифра меньше n_dead_tup то постгрес считает, что вакуум не нужен.
Чтобы вакуум запустился сам, скорей всего надо подкрутить scale factor (вероятно он у вас дефолтный 0.2)
источник

ДТ

Дмитрий Тремасов... in pgsql – PostgreSQL
у меня сильное подозрение что все эти индексы - это индексы первичных ключей. и удалять их наверное не надо
источник

BS

Baisak Sagynov in pgsql – PostgreSQL
Дмитрий Тремасов
у меня сильное подозрение что все эти индексы - это индексы первичных ключей. и удалять их наверное не надо
А может быть такое что отметили как первичный ключ плюс еще как индекс?
источник

BS

Baisak Sagynov in pgsql – PostgreSQL
Alexey Lesovsky
решение запускать вакуум или нет, расчитывается по формуле
n_dead_tup >= ((reltuples * autovacuum_vacuum_scale_factor) + autovacuum_vacuum_threshold)
у вас, n_dead_tup = 149371, reltuples возьмите из pg_class, scale_factor и threshold из конфига и посчитайте, если полученная цифра меньше n_dead_tup то постгрес считает, что вакуум не нужен.
Чтобы вакуум запустился сам, скорей всего надо подкрутить scale factor (вероятно он у вас дефолтный 0.2)
Огромное вам спасибо👍
источник

ДТ

Дмитрий Тремасов... in pgsql – PostgreSQL
Baisak Sagynov
А может быть такое что отметили как первичный ключ плюс еще как индекс?
При добавлении первичного ключа - индекс B-tree автоматически создается
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Baisak Sagynov
вот эти с нулевыми значениями индексы можно смело удалять?
не стоит удалять индексы с суффиксом _pkey, 99% что это первичные ключи.
источник

BS

Baisak Sagynov in pgsql – PostgreSQL
всем огромное спасибо, хороших выходных всем!
источник

BS

Baisak Sagynov in pgsql – PostgreSQL
select indexrelname from  pg_stat_user_indexes where idx_scan=0;  — этим запросом вывел список и решил удалить все индексы без суффикса _pkey, правильно ли я делаю?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Baisak Sagynov
select indexrelname from  pg_stat_user_indexes where idx_scan=0;  — этим запросом вывел список и решил удалить все индексы без суффикса _pkey, правильно ли я делаю?
посмотрите когда сбрасывалась статистика для вашей БД,
select datname,now()-stats_reset from pg_stat_database where datname = 'DATNAME'; - DATNAME замените на свою БД, если стата сбрасывалась 2 и более месяцев, то да, можно рассмотреть удаление индексов - но будьте внимательны, смотрите чтобы под удаление не попали UNIQUE индексы (у них может не быть показательных префиксов)
источник

BS

Baisak Sagynov in pgsql – PostgreSQL
Alexey Lesovsky
посмотрите когда сбрасывалась статистика для вашей БД,
select datname,now()-stats_reset from pg_stat_database where datname = 'DATNAME'; - DATNAME замените на свою БД, если стата сбрасывалась 2 и более месяцев, то да, можно рассмотреть удаление индексов - но будьте внимательны, смотрите чтобы под удаление не попали UNIQUE индексы (у них может не быть показательных префиксов)
Аа все ок, очень тонкие моменты раскрыли для меня, счастья вам в семье!
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
взаимно:)
источник

P

Petr in pgsql – PostgreSQL
Коллеги, а есть ли штатная возможность добавить префиксы/постфиксы ко всем именам колонок (не указывая все их по отдельности) при SELECT?
Что-то типа SELECT [prefix]* from table
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Petr
Коллеги, а есть ли штатная возможность добавить префиксы/постфиксы ко всем именам колонок (не указывая все их по отдельности) при SELECT?
Что-то типа SELECT [prefix]* from table
нет
источник

P

Petr in pgsql – PostgreSQL
Виктор, благодарю за оперативный ответ :)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Petr
Виктор, благодарю за оперативный ответ :)
SQL декларативный, * — единственное, что есть. если несколько таблиц связываются, можно выбрать колонки только одной через tab.*
но префиксы колонок — никак, только через динамическое построение запросов любым удобным способом.

кстати, наличие в названиях колонок одинаковых префиксов может говорить о не очень удачно выбранной схемы именования. а может и не говорить ¯\_(ツ)_/¯
источник

P

Petr in pgsql – PostgreSQL
Victor Yegorov
SQL декларативный, * — единственное, что есть. если несколько таблиц связываются, можно выбрать колонки только одной через tab.*
но префиксы колонок — никак, только через динамическое построение запросов любым удобным способом.

кстати, наличие в названиях колонок одинаковых префиксов может говорить о не очень удачно выбранной схемы именования. а может и не говорить ¯\_(ツ)_/¯
Касательно второго абзаца — это временные таблицы во время некоторых аналитических изысканий, поэтому так и получилось :)
Ещё раз спасибо
источник

DK

Dmitry Komshin in pgsql – PostgreSQL
добрый день
источник

DK

Dmitry Komshin in pgsql – PostgreSQL
подскажите в чём может быть проблема:
2021-03-26 20:18:30.749 MSK 14477 @ from  [vxid: txid:0] [] DETAIL:  The failed archive command was: /usr/bin/pgbackrest --stanza=pclpgdb02 archive-push pg_wal/00000004000000FE0000008A
2021-03-26 20:18:31.761 P00   INFO: archive-push command begin 2.32: [pg_wal/00000004000000FE0000008A] --compress-level=3 --exec-id=14489-bff095c4 --log-level-console=info --log-level-file=debug --pg1-path=/var/lib/pgsql/12/data --process-max=4 --repo1-host=tlpgbackup01 --stanza=pclpgdb02
ERROR: [050]: raised from remote-0 protocol on 'tlpgbackup01': unable to acquire lock on file '/tmp/pgbackrest/pclpgdb02-archive.lock': Resource temporarily unavailable
      HINT: is another pgBackRest process running?
2021-03-26 20:18:31.907 P00   INFO: archive-push command end: aborted with exception [050]
2021-03-26 20:18:31.908 MSK 14477 @ from  [vxid: txid:0] [] LOG:  archive command failed with exit code 50
2021-03-26 20:18:31.908 MSK 14477 @ from  [vxid: txid:0] [] DETAIL:  The failed archive command was: /usr/bin/pgbackrest --stanza=pclpgdb02 archive-push pg_wal/00000004000000FE0000008A
2021-03-26 20:18:31.908 MSK 14477 @ from  [vxid: txid:0] [] WARNING:  archiving write-ahead log file "00000004000000FE0000008A" failed too many times, will try again later
источник

DK

Dmitry Komshin in pgsql – PostgreSQL
процессе архивации получил ошибку на сегменте wal
источник

DK

Dmitry Komshin in pgsql – PostgreSQL
база постоянно переходит в режим восстановления
источник