|
|
|
необходимость выполнения reindex
|
|||
|---|---|---|---|
|
#18+
Добрый день! У меня есть несколько таблиц, которые часто изменяются и в основном это insert, но для одной часто выполняется delete. Каждый день, в определенное время выполняется VACUUM FULL ANALYZE для всех этих таблиц, всё было хорошо, довольно длительное время. Но вот недавно возникла ситуация, что на одной из этих таблиц пропал индекс, но мы к сожалению не уверены был ли он точно раньше. Я читал, что индексы слетают только при неполадках железа. Хотелось бы узнать, нужно ли мне дополнительно, каждый день, выполнять для этих таблиц REINDEX? И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 12:38 |
|
||
|
необходимость выполнения reindex
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 12:50 |
|
||
|
необходимость выполнения reindex
|
|||
|---|---|---|---|
|
#18+
>А что значит пропал? И каким образом от этого reindex поможет? >Пропал - значит или его не было с самого начала или его дропнули руками. Скорей всего вы правы, его просто не было. Кстати, мы недавно восстанавливали эти таблицы из бекапа, таким вот образом: pg_restore -n имя_схемы -t имя_таблицы... Возможно индексы не восстановились... >PS: vacuum full каждый день тоже идея странная и не нужная. Вы правы, я пожалуй перенесу эту процедуру на выполнение раз в неделю, а может и месяц. Спасибо Максим! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 14:22 |
|
||
|
необходимость выполнения reindex
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk >И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически? Не в каких на самом деле. Впрочем полезно сделать если вы больше 50% строк в таблице удалили. у меня есть таблички логической блокировки ресурсов уеб--сеансами. там периодически 5000% дед ровсов. вакуумлю (ANALYZE без full) джобом раза два в час. (хотя и раз в минуту -- было бы не вредно -- их там есть). Индекс, на <1000 постоянно активных записей распухает до 10 МБ (там уникъю==pk используется в качестве разделяемого ресурса). Хотелось бы для таких целей табличку -- блокировочник . Было бы удобно, думается. (ко-то из мс-скльщиков [с таким антипаттерном] плакался лет несколько тому, что к пж не смог приладиться -- именно из-за безмерно опухающих индексов). Ну и с реиндексом без окна обслуживания приходится прыгать в Try -- exept , со снятием по времени. (переделать на не pk руки не доходят). вполне допускаю, что ошибка дизайна, но других нет. приехало решение с оракла. там вроде бы жило без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 14:33 |
|
||
|
необходимость выполнения reindex
|
|||
|---|---|---|---|
|
#18+
gk2>Вы правы, я пожалуй перенесу эту процедуру на выполнение раз в неделю, а может и месяц. а может лучше автовакуум настроить чтобы почаще вызывался? если длинных транзакций нет, то должно помочь. qwwqу меня есть таблички логической блокировки ресурсов уеб--сеансами. там периодически 5000% дед ровсов. вакуумлю (ANALYZE без full) джобом раза два в час. (хотя и раз в минуту -- было бы не вредно -- их там есть). Индекс, на <1000 постоянно активных записей распухает до 10 МБ (там уникъю==pk используется в качестве разделяемого ресурса). а зачем вручную вакуум делать? настройки автовакуума можно per table сколь угодно дикие прописать для этой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 16:00 |
|
||
|
необходимость выполнения reindex
|
|||
|---|---|---|---|
|
#18+
qwwqMaxim Boguk >И вообще хотелось бы узнать, в каких случаях REINDEX выполняется систематически? Не в каких на самом деле. Впрочем полезно сделать если вы больше 50% строк в таблице удалили. у меня есть таблички логической блокировки ресурсов уеб--сеансами. там периодически 5000% дед ровсов. вакуумлю (ANALYZE без full) джобом раза два в час. (хотя и раз в минуту -- было бы не вредно -- их там есть). Индекс, на <1000 постоянно активных записей распухает до 10 МБ (там уникъю==pk используется в качестве разделяемого ресурса). Хотелось бы для таких целей табличку -- блокировочник . Было бы удобно, думается. (ко-то из мс-скльщиков [с таким антипаттерном] плакался лет несколько тому, что к пж не смог приладиться -- именно из-за безмерно опухающих индексов). Ну и с реиндексом без окна обслуживания приходится прыгать в Try -- exept , со снятием по времени. (переделать на не pk руки не доходят). вполне допускаю, что ошибка дизайна, но других нет. приехало решение с оракла. там вроде бы жило без проблем. На таких таблицах и таком профиле использования любые транзакции длиннее 1 минуты (включая pg_dump) должны быть запрещены. Иначе да - будут пухнуть и таблицы и (несколько меньше) индексы. Врожденное свойство postgresql увы, зато rollback очень дешевый ;). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 16:37 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=111&tid=1998009]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 393ms |

| 0 / 0 |
