Как я могу скомбинировать базу данных Firebird 2.1, как в MS Access (отбрасывание стертых данных, переделка индекса и т. Д.)?База данных Compact Firebird 2.1
Есть ли способ сделать это?
Спасибо!
Как я могу скомбинировать базу данных Firebird 2.1, как в MS Access (отбрасывание стертых данных, переделка индекса и т. Д.)?База данных Compact Firebird 2.1
Есть ли способ сделать это?
Спасибо!
Обычно нет необходимости уплотнять базу данных Firebird: см. Примечания к выпуску fb о сборке мусора и автоматическую (для каждой базы данных) операцию под названием «развертка». В нескольких словах fb повторно использует пробел на страницах, когда записи удалены или старая версия записи освобождается, запрашивая фрагменты дискового пространства только тогда, когда свободное пространство становится слишком маленьким (т. Е. Под определенным процентом). Sweep выполняется по умолчанию после предопределенного количества транзакций, и это дорогостоящая задача. Резервное копирование и восстановление должны быть предназначены в качестве последней меры для оптимизации и сокращения, так как это также восстанавливает и оптимизирует индексы, но обычно это не требуется, так как есть команды и инструменты для восстановления индексов.
Спасибо! превосходный ответ! – Alex
Единственный способ сделать это - сделать резервную копию и восстановить.
Бразильский, Эдуардо? Мне тоже! Спасибо за советы! – Alex
Да, я. Не стесняйтесь обращаться ко мне. –
Из official faq
Многие пользователи задаются вопросом, почему они не получают их на диске назад, когда они удалить много записей из базы данных.
Причина в том, что это дорогостоящая операция, потребовалось бы много записей на диске и памяти - так же, как делать рефрагментацию раздела . Части базы данных (страницы), которые были использованы , такие данные помечаются как пустые, и Firebird будет их повторно использовать в следующий раз , ему нужно будет написать новые данные.
Если дисковое пространство для вас имеет решающее значение, вы можете вернуть пространство на , выполнив резервное копирование и затем восстановив его. Так как вы делаете резервное копирование до , сразу же восстановите его, используйте «запретить сбор мусора» или переключатель «не использовать сборщик мусора» (-G в gbak), который сделает резервную копию , отправив LOT FASTER , Сбор мусора используется для очистки вашей базы данных , и, поскольку это задача обслуживания, она часто выполняется вместе с с резервным копированием (так как в любом случае резервная копия должна пройти по всей базе данных). Тем не менее, вы скоро поймаете этот файл базы данных, и нет необходимости в очистке .
Также см. Http://stackoverflow.com/questions/1662431/how-do-i-optimize-table-after-delete-many-records – nawfal