Size: a a a

pgsql – PostgreSQL

2020 July 23

i

iwanttobeleve in pgsql – PostgreSQL
Всем привет
Подскажите, пожалуйста, делаю репак на таблицу
Репак пишет, что создаёт индекс для уже новой созданной таблицы, но места на диске с индексами и на других дисках не уменьшается.
И в stat_activities много одинаковых запросов один в один в статусе active по созданию индекса. Было ли у кого-нибудь такое, это нормально?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
iwanttobeleve
Всем привет
Подскажите, пожалуйста, делаю репак на таблицу
Репак пишет, что создаёт индекс для уже новой созданной таблицы, но места на диске с индексами и на других дисках не уменьшается.
И в stat_activities много одинаковых запросов один в один в статусе active по созданию индекса. Было ли у кого-нибудь такое, это нормально?
Неоднократно перепаковывал таблицы разных размеров и особых проблем с репаком не испытывал.
источник

i

iwanttobeleve in pgsql – PostgreSQL
Роман Жарков
Неоднократно перепаковывал таблицы разных размеров и особых проблем с репаком не испытывал.
А не останпвливал запросы к базе? Не заглядывал под капот, какие там идут запросы?
источник

i

iwanttobeleve in pgsql – PostgreSQL
И сколько обычно шел репак?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
iwanttobeleve
А не останпвливал запросы к базе? Не заглядывал под капот, какие там идут запросы?
Всё на ходу и под нормальной нагрузкой.
Место меня не интересовало: надо было блоат ликвидировать быстро и аккуратно.
источник

i

iwanttobeleve in pgsql – PostgreSQL
И долго ли создавались индексы?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
iwanttobeleve
И сколько обычно шел репак?
Смотря какого размера таблица и сколько в ней индексов. Часы вполне может занять.
С моей подачи он хоть длинные чужие вакуумы теперь не ждёт :)
источник

i

iwanttobeleve in pgsql – PostgreSQL
Роман Жарков
Смотря какого размера таблица и сколько в ней индексов. Часы вполне может занять.
С моей подачи он хоть длинные чужие вакуумы теперь не ждёт :)
Саму таблицу осилил за три часа, уже где-то час висит как create index
источник

i

iwanttobeleve in pgsql – PostgreSQL
И пространство на дисках не уменьшает, вот что меня смущает
источник

i

iwanttobeleve in pgsql – PostgreSQL
И много запросов create index в pg_stat_activity
источник

i

iwanttobeleve in pgsql – PostgreSQL
iwanttobeleve
И пространство на дисках не уменьшает, вот что меня смущает
После того, как написал, что создаёт индексы
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
В каком они статусе?
источник

i

iwanttobeleve in pgsql – PostgreSQL
Роман Жарков
В каком они статусе?
Все в active
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
А размер у старых индексов какой?
источник

i

iwanttobeleve in pgsql – PostgreSQL
А вот сейчас написал, что начал следующий индекс создавать
источник

i

iwanttobeleve in pgsql – PostgreSQL
Роман Жарков
А размер у старых индексов какой?
Их много, тот, что долго обрабатывался, 2gb
Сейчас уже третий пошел...
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
iwanttobeleve
Их много, тот, что долго обрабатывался, 2gb
Сейчас уже третий пошел...
Тогда надо просто подождать.
источник

K

Kirill in pgsql – PostgreSQL
Victor Yegorov
WITH t(id,partition_id,data) AS (
 VALUES (1, 1, 'one'::text), (1, 2, NULL), (1, 3, NULL), (1, 4, 'two'),
        (2, 1, NULL), (2, 2, 'three'), (2, 3, NULL)
), u AS (
 SELECT *, max(data) OVER (PARTITION BY id, gg) filler FROM (
   SELECT *, sum(g) OVER (PARTITION BY id ORDER BY partition_id) gg FROM (
     SELECT *, CASE WHEN data IS NOT NULL AND data IS DISTINCT FROM lag(data) OVER (PARTITION BY id ORDER BY partition_id) THEN 1 END g FROM t
     ) x
   ) y
  ORDER BY id, partition_id
)
SELECT * FROM u;
--UPDATE t SET data=u.filler FROM u WHERE t.id=u.id AND t.partition_id=u.partition_id AND t.data IS NULL;
у меня проще получилось))
SELECT *, COALESCE(max("text") OVER (PARTITION BY id ORDER BY partition_id))
FROM my_table
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Kirill
у меня проще получилось))
SELECT *, COALESCE(max("text") OVER (PARTITION BY id ORDER BY partition_id))
FROM my_table
строки two и one в исходных данных поменяйте местами
источник

K

Kirill in pgsql – PostgreSQL
Так а в запросе же группировка есть
источник