2009-11-02 61 views

回答

2

這是火鳥的許多痛苦之一。備份/使用gbak

1

火鳥偶爾會運行一個掃刪除索引等記錄還原數據庫,並恢復用於其他用途的空間 - 要做到這一點 最佳和唯一有效和正確途徑。換句話說,只要掃描已經運行,您將具有與數據庫文件較小相同的性能。如果您正在嘗試這樣做,您可以強制立即掃描。

但是,無論如何,實際數據庫的大小不會縮小,除非執行備份和還原。如果size是一個問題,使用-USE_ALL_SPACE參數爲gbak,它將阻止爲未來的記錄保留空間,這將產生一個較小的數據庫。

0

official faq

許多用戶不知道爲什麼他們沒有得到他們的磁盤空間,回來的時候,他們 從數據庫中刪除了很多紀錄。

原因是這是一個昂貴的操作,它需要大量的磁盤寫入和內存 - 就像對硬盤分區進行碎片整理一樣。 這些數據所使用的數據庫(頁面)部分被標記爲空,並且Firebird將在下次需要寫入新數據時重新使用它們 。

如果磁盤空間對您很重要,您可以通過 進行備份和恢復。由於您正在執行備份到 立即恢復,所以使用「禁止垃圾回收」 或「不使用垃圾回收」開關(gbak中的-G)是明智的做法,這將使 備份成爲一個LOT FASTER 。垃圾收集用於清理數據庫,由於它是一項維護任務,它通常與 一起進行備份(因爲備份必須通過整個數據庫)。 但是,您很快就會丟棄該數據庫文件,並且沒有需要清理它的 。