Dashboard > СУБД > Home > PostgreSQL, сжимаем самые крупные таблицы (bash) > Просмотр
  СУБД Вход | Зарегистрироваться   Вариант для печати.  
  PostgreSQL, сжимаем самые крупные таблицы (bash)
Добавил(а) shixaro, последний раз редактировал(а) shixaro Dec 20, 2011  (посмотреть изменения)
Метки: 
(None)

Таблицам свойственно со временем разрастаться, то же самое касается и индексов. И чем активнее происходят операции записи данных в таблице (UPDATE/INSERT/DELETE), тем интенсивнее рост.

DBHOST="dbserv"
DBNAME="mybase"
DBUSER="dba"
TOP=50

for i in `psql -U $DBUSER -h $DBHOST $DBNAME -c "SELECT tablename as name FROM pg_tables WHERE schemaname <> 'information_schema' ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC LIMIT $TOP" | awk '{print $1}' | grep -e ^[[:alpha:]] | grep -v name`; 
  do echo $i; 
  psql -U $DBUSER -h $DBHOST $DBNAME -c "VACUUM FULL $i"; 
  psql -U $DBUSER -h $DBHOST $DBNAME -c "REINDEX TABLE $i"; 
  psql -U $DBUSER -h $DBHOST $DBNAME -c "ANALYZE $i"; 
done

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5 Build:#805 Apr 26, 2007) - Запрос Bug/feature - Связаться с администраторами