Size: a a a

pgsql – PostgreSQL

2020 July 16

VY

Victor Yegorov in pgsql – PostgreSQL
Ильнур
добрый день! при pg_restore никто не сталкивался с ошибкой:
query failed: ОШИБКА:  функция cfs_enable_gc(boolean) не существует
?
отличия в версии минорные. 9.6.11 > 9.6.16
в файлах дампа строк с cfs нет
это PGPro дистрибутив, не ванильный?
источник

И

Ильнур in pgsql – PostgreSQL
Victor Yegorov
это PGPro дистрибутив, не ванильный?
ага, написали и сами же увидели сразу)))
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Vladislav Navrocky
сделать sequence, пронумеровать, а потом его удалить?
как вариант, да.
можно сформировать список:
- через подзапрос с row_number() OVER () — тут желательно добавить ORDER BY, но можно и без, тогда в порядке появления записей будут номера
- развернуть массив значений через unnest(ARRAY[]) a WITH ORDINALITY AS a(a, seq)
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Alex G
А обязательно все 80кк записей таскать каждый день пачкой? За сутки столько накапливаете? Сливайте раз в час дельту, а обработку запускайте по факту окончания суток после сравнивания количества записей в источнике и записанного приемник.
из 80кк обновляется за день 10кк гдето. запросы с условием на выборку по полю updated_at к примеру так же оч долго идут.
источник

A

Alexander in pgsql – PostgreSQL
заменить update на insert?
источник

VN

Vladislav Navrocky in pgsql – PostgreSQL
Victor Yegorov
как вариант, да.
можно сформировать список:
- через подзапрос с row_number() OVER () — тут желательно добавить ORDER BY, но можно и без, тогда в порядке появления записей будут номера
- развернуть массив значений через unnest(ARRAY[]) a WITH ORDINALITY AS a(a, seq)
с row_number() вроде как самый нормальный вариант. Спасибо, попробую
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Yelena Bunina
из 80кк обновляется за день 10кк гдето. запросы с условием на выборку по полю updated_at к примеру так же оч долго идут.
Где-то 15 минут — это не "очень долго", нет? Вообще, всё это разговор ни о чём, IMNSHO — Вам сначала нужно bottleneck найти, а уже потом с ним что-то делать. ;)
источник

i

iwanttobeleve in pgsql – PostgreSQL
Всем добрый день
Скажите, вы когда нибудь замеряли на какое время pg_repack накладывает блокировки? И есть ли какой-то способ, кроме тестов
источник

ИС

Ильдар Садыков... in pgsql – PostgreSQL
Всем привет!
Предусловие: PostgreSQL 11.8 && java 11 && Spring JPA 2.1 && Hibernate 5.4.3

Описание:
Для генерирования идентификаторов используются след. аннотации @GeneratedValue(strategy = GenerationType.SEQUENCE) @SequenceGenerator(allocationSize = default 50)
Шаг инкремента в БД сиквенса равен 50.
4 инстанса приложения.  

Проблема:  ERROR: duplicate key value violates unique constraint "..._pkey"

Может кто сталкивался с такой проблемой
источник

VY

Victor Yegorov in pgsql – PostgreSQL
iwanttobeleve
Всем добрый день
Скажите, вы когда нибудь замеряли на какое время pg_repack накладывает блокировки? И есть ли какой-то способ, кроме тестов
он должен:
- взять Access Exclusive Lock в начале работы, чтобы сделать “отсечку” для работы. в этот момент он отстрелит мешающие сессии (`-D`) через таймаут (`-T`)
- затем он понижает до Access Share Lock (минимальный) и тащит данные
- затем опять берёт Access Exclusive Lock для подмены таблицы, тут ещё раз происходит (или нет) отстрел.
если указана опция -D (не отстреливать) и кто-то мешает – ничего не будет сделано
источник

AG

Alex G in pgsql – PostgreSQL
Yelena Bunina
из 80кк обновляется за день 10кк гдето. запросы с условием на выборку по полю updated_at к примеру так же оч долго идут.
выгребайте по этому полю периодически значит, не всё сразу.
а то станет 800кк и упретесь в ту же проблему
источник

i

iwanttobeleve in pgsql – PostgreSQL
Victor Yegorov
он должен:
- взять Access Exclusive Lock в начале работы, чтобы сделать “отсечку” для работы. в этот момент он отстрелит мешающие сессии (`-D`) через таймаут (`-T`)
- затем он понижает до Access Share Lock (минимальный) и тащит данные
- затем опять берёт Access Exclusive Lock для подмены таблицы, тут ещё раз происходит (или нет) отстрел.
если указана опция -D (не отстреливать) и кто-то мешает – ничего не будет сделано
То есть по факту он не ставит блокировку на долго, а ставит ее на несколько секунд в начале и в конце?
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Yaroslav Schekin
Где-то 15 минут — это не "очень долго", нет? Вообще, всё это разговор ни о чём, IMNSHO — Вам сначала нужно bottleneck найти, а уже потом с ним что-то делать. ;)
я поняла что вы советуете. ищу)) очень долго это все что больше 30 минут)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
iwanttobeleve
То есть по факту он не ставит блокировку на долго, а ставит ее на несколько секунд в начале и в конце?
нет, блокировка есть всё время работы, только блоки разных уровней. всё зависит от параллельной активности — если никто не мешает, там речь о ms, если не пролезть, то он будет ждать и будут минуты
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Yelena Bunina
я поняла что вы советуете. ищу)) очень долго это все что больше 30 минут)
Елена, а локально из шелла запрос с выводом в devnull сколько времени выполняется?
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Сергей Голод
Елена, а локально из шелла запрос с выводом в devnull сколько времени выполняется?
ща жду результат
источник

i

iwanttobeleve in pgsql – PostgreSQL
Victor Yegorov
нет, блокировка есть всё время работы, только блоки разных уровней. всё зависит от параллельной активности — если никто не мешает, там речь о ms, если не пролезть, то он будет ждать и будут минуты
Аа, я имел ввиду блокировки на чтение и запись, я так понимаю, блокировка, которую он держит все время не мешает ни писать ни читать, и только эксклюзивная в конце и в начале не даёт ни писать ни читать?
источник

YB

Yelena Bunina in pgsql – PostgreSQL
Alex G
выгребайте по этому полю периодически значит, не всё сразу.
а то станет 800кк и упретесь в ту же проблему
не поняла. что именно вы имеете в виду. например есть 5кк записей которые обновились за час. запускаю джобу по updated_at > current_timestamp - interavl ‘’1 hour’ и так каждый час
источник

AG

Alex G in pgsql – PostgreSQL
Yelena Bunina
не поняла. что именно вы имеете в виду. например есть 5кк записей которые обновились за час. запускаю джобу по updated_at > current_timestamp - interavl ‘’1 hour’ и так каждый час
несколько раз в час забирайте обновления
источник

СГ

Сергей Голод... in pgsql – PostgreSQL
Yelena Bunina
не поняла. что именно вы имеете в виду. например есть 5кк записей которые обновились за час. запускаю джобу по updated_at > current_timestamp - interavl ‘’1 hour’ и так каждый час
надеюсь индекс по полю updated_at конечно есть?
источник