Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / необходимость выполнения reindex / 6 сообщений из 6, страница 1 из 1
05.05.2015, 12:38
    #38951677
gk2
gk2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
необходимость выполнения reindex
Добрый день! У меня есть несколько таблиц, которые часто изменяются и в основном это insert, но для одной часто выполняется delete. Каждый день, в определенное время выполняется VACUUM FULL ANALYZE для всех этих таблиц, всё было хорошо, довольно длительное время. Но вот недавно возникла ситуация, что на одной из этих таблиц пропал индекс, но мы к сожалению не уверены был ли он точно раньше. Я читал, что индексы слетают только при неполадках железа. Хотелось бы узнать, нужно ли мне дополнительно, каждый день, выполнять для этих таблиц REINDEX? И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически?
...
Рейтинг: 0 / 0
05.05.2015, 12:50
    #38951699
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
необходимость выполнения reindex
gk2Добрый день! У меня есть несколько таблиц, которые часто изменяются и в основном это insert, но для одной часто выполняется delete. Каждый день, в определенное время выполняется VACUUM FULL ANALYZE для всех этих таблиц, всё было хорошо, довольно длительное время. Но вот недавно возникла ситуация, что на одной из этих таблиц пропал индекс, но мы к сожалению не уверены был ли он точно раньше. Я читал, что индексы слетают только при неполадках железа. Хотелось бы узнать, нужно ли мне дополнительно, каждый день, выполнять для этих таблиц REINDEX? И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически?

А что значит пропал? И каким образом от этого reindex поможет?
Пропал - значит или его не было с самого начала или его дропнули руками.

>И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически?
Не в каких на самом деле. Впрочем полезно сделать если вы больше 50% строк в таблице удалили.

PS: vacuum full каждый день тоже идея странная и не нужная.

PPS: если у вас версия базы 9.2+ то vacuum full индексы тоже перестроит с нуля.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
05.05.2015, 14:22
    #38951804
gk2
gk2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
необходимость выполнения reindex
>А что значит пропал? И каким образом от этого reindex поможет?
>Пропал - значит или его не было с самого начала или его дропнули руками.

Скорей всего вы правы, его просто не было. Кстати, мы недавно восстанавливали эти таблицы из бекапа, таким вот образом: pg_restore -n имя_схемы -t имя_таблицы... Возможно индексы не восстановились...

>PS: vacuum full каждый день тоже идея странная и не нужная.
Вы правы, я пожалуй перенесу эту процедуру на выполнение раз в неделю, а может и месяц.

Спасибо Максим!
...
Рейтинг: 0 / 0
05.05.2015, 14:33
    #38951812
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
необходимость выполнения reindex
Maxim Boguk >И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически?
Не в каких на самом деле. Впрочем полезно сделать если вы больше 50% строк в таблице удалили.
у меня есть таблички логической блокировки ресурсов уеб--сеансами. там периодически 5000% дед ровсов. вакуумлю (ANALYZE без full) джобом раза два в час. (хотя и раз в минуту -- было бы не вредно -- их там есть). Индекс, на <1000 постоянно активных записей распухает до 10 МБ (там уникъю==pk используется в качестве разделяемого ресурса).



Хотелось бы для таких целей табличку -- блокировочник . Было бы удобно, думается. (ко-то из мс-скльщиков [с таким антипаттерном] плакался лет несколько тому, что к пж не смог приладиться -- именно из-за безмерно опухающих индексов).

Ну и с реиндексом без окна обслуживания приходится прыгать в Try -- exept , со снятием по времени. (переделать на не pk руки не доходят).

вполне допускаю, что ошибка дизайна, но других нет. приехало решение с оракла. там вроде бы жило без проблем.
...
Рейтинг: 0 / 0
05.05.2015, 16:00
    #38951909
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
необходимость выполнения reindex
gk2>Вы правы, я пожалуй перенесу эту процедуру на выполнение раз в неделю, а может и месяц.


а может лучше автовакуум настроить чтобы почаще вызывался? если длинных транзакций нет, то должно помочь.

qwwqу меня есть таблички логической блокировки ресурсов уеб--сеансами. там периодически 5000% дед ровсов. вакуумлю (ANALYZE без full) джобом раза два в час. (хотя и раз в минуту -- было бы не вредно -- их там есть). Индекс, на <1000 постоянно активных записей распухает до 10 МБ (там уникъю==pk используется в качестве разделяемого ресурса).

а зачем вручную вакуум делать? настройки автовакуума можно per table сколь угодно дикие прописать для этой таблицы.
...
Рейтинг: 0 / 0
05.05.2015, 16:37
    #38951946
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
необходимость выполнения reindex
qwwqMaxim Boguk >И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически?
Не в каких на самом деле. Впрочем полезно сделать если вы больше 50% строк в таблице удалили.
у меня есть таблички логической блокировки ресурсов уеб--сеансами. там периодически 5000% дед ровсов. вакуумлю (ANALYZE без full) джобом раза два в час. (хотя и раз в минуту -- было бы не вредно -- их там есть). Индекс, на <1000 постоянно активных записей распухает до 10 МБ (там уникъю==pk используется в качестве разделяемого ресурса).



Хотелось бы для таких целей табличку -- блокировочник . Было бы удобно, думается. (ко-то из мс-скльщиков [с таким антипаттерном] плакался лет несколько тому, что к пж не смог приладиться -- именно из-за безмерно опухающих индексов).

Ну и с реиндексом без окна обслуживания приходится прыгать в Try -- exept , со снятием по времени. (переделать на не pk руки не доходят).

вполне допускаю, что ошибка дизайна, но других нет. приехало решение с оракла. там вроде бы жило без проблем.

На таких таблицах и таком профиле использования любые транзакции длиннее 1 минуты (включая pg_dump) должны быть запрещены. Иначе да - будут пухнуть и таблицы и (несколько меньше) индексы.
Врожденное свойство postgresql увы, зато rollback очень дешевый ;).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / необходимость выполнения reindex / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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