|
|
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
Есть таблица 40 гб. Удалили 6 строковых колонок, ожидаем уменьшения размера. Прогнали компактор, толку нет, он ничего не делает. Как уменьшить без фулл вакуума и пересоздания? На реплике сделали фулл вакуум, стало 30 гб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2014, 19:30:32 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
ArtemiyЕсть таблица 40 гб. Удалили 6 строковых колонок, ожидаем уменьшения размера. Прогнали компактор, толку нет, он ничего не делает. Как уменьшить без фулл вакуума и пересоздания? На реплике сделали фулл вакуум, стало 30 гб. бугага "дроп колумн" в пж помечает колонку как дропнутую, и скрывает от вас. с данными там ничего не происходит. Если вы попробуете насильно SET NULL -- за счет версий еще и в моменте подрастет. Так что только полный вакуум, только хардкор. РТФМThe DROP COLUMN form does not physically remove the column, but simply makes it invisible to SQL operations. Subsequent insert and update operations in the table will store a null value for the column. Thus, dropping a column is quick but it will not immediately reduce the on-disk size of your table, as the space occupied by the dropped column is not reclaimed. The space will be reclaimed over time as existing rows are updated. (These statements do not apply when dropping the system oid column; that is done with an immediate rewrite.) To force an immediate rewrite of the table, you can use VACUUM FULL, CLUSTER or one of the forms of ALTER TABLE that forces a rewrite. This results in no semantically-visible change in the table, but gets rid of no-longer-useful data. помню времена, когда даже пресловутый инвизибле сбоил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2014, 22:17:19 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
ArtemiyЕсть таблица 40 гб. Удалили 6 строковых колонок, ожидаем уменьшения размера. Прогнали компактор, толку нет, он ничего не делает. Как уменьшить без фулл вакуума и пересоздания? На реплике сделали фулл вакуум, стало 30 гб. ну если совсем уж любой ценой извратиться то 1)обновить принудительно руками все строки (блоками по 1000-10000 строк) чтобы пустые поля в NULL превратились 2)прогнать компактор по таблице с --reindex --force ну или блокирующий vacuum full или cluster. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 04:19:36 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, А компактор разве сам не переписывает таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 14:45:15 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
ArtemiyMaxim Boguk, А компактор разве сам не переписывает таблицу? нет (точнее не совсем и в вашем конкретном случае он ничего сделать не может). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 16:48:21 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
Maxim BogukArtemiyЕсть таблица 40 гб. Удалили 6 строковых колонок, ожидаем уменьшения размера. Прогнали компактор, толку нет, он ничего не делает. Как уменьшить без фулл вакуума и пересоздания? На реплике сделали фулл вакуум, стало 30 гб. ну если совсем уж любой ценой извратиться то 1)обновить принудительно руками все строки (блоками по 1000-10000 строк) чтобы пустые поля в NULL превратились 2)прогнать компактор по таблице с --reindex --force ну или блокирующий vacuum full или cluster. а если обновить всю удаляему колонку в null перед дропом? поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:31:47 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
Ivan DurakMaxim Bogukпропущено... ну если совсем уж любой ценой извратиться то 1)обновить принудительно руками все строки (блоками по 1000-10000 строк) чтобы пустые поля в NULL превратились 2)прогнать компактор по таблице с --reindex --force ну или блокирующий vacuum full или cluster. а если обновить всю удаляему колонку в null перед дропом? поможет? если обновить в null а потом пройтись компактором - да поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:46:21 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
Можете в кратце пояснить механизм работы компактора. Я считал что он апдейтами переписывает всю таблицу на новое место, как бы дефрагментируя ее, позволяя обычному вакууму собрать мусор, нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 07:49:05 |
|
||
|
Уменьшить таблицу после удаления колонок
|
|||
|---|---|---|---|
|
#18+
ArtemiyМожете в кратце пояснить механизм работы компактора. Я считал что он апдейтами переписывает всю таблицу на новое место, как бы дефрагментируя ее, позволяя обычному вакууму собрать мусор, нет? он переписывает не на новое место а на свободное место внутри этой же таблицы... в случае удаленных колонок свободного места в таблице формально нет (так как удаленны колонки на самом деле где были там и остались только для sql запросов не видны) и компактор ничего сделать с этим не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2014, 08:58:27 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38781773&tid=1998416]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
7ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 524ms |

| 0 / 0 |
