У меня есть таблица на greenplum, из которой данные ежедневно удаляются с помощью простого оператора удаления. Однако размер таблицы не уменьшается. Есть ли способ, с помощью которого пространство, возвращаемое удалением строк, удаляется из таблицы и, таким образом, уменьшается размер таблицы.
Освобождение пространства, созданного удалением строк из таблицы на greenplum
Ответы (1)
База данных Greenplum по своей сути использует тот же код, что и база данных Postgres. Следовательно, вам нужна команда VACUUM. Из документации по адресу http://gpdb.docs.gopivotal.com/4300/pdf/GPDB43RefGuide.pdf:
VACUUM восстанавливает память, занятую удаленными кортежами. При нормальной работе базы данных Greenplum кортежи, удаленные или устаревшие в результате обновления, физически не удаляются из своей таблицы; они остаются на диске до тех пор, пока не будет выполнена ВАКУУМНАЯ ОЧИСТКА. Поэтому необходимо периодически делать VACUUM, особенно на часто обновляемых таблицах.
Кроме того, если вы изменяете значительное количество строк, вы можете использовать VACUUM ANALYZE, чтобы обновить статистику для таблицы для лучшего планирования запросов.