コンパクトなFirebird 2.1データベース
-
04-10-2019 - |
質問
MS Access(消去されたデータの破棄、リメイクインデックスなど)のように、Firebird 2.1データベースをコンパクトするにはどうすればよいですか?
それをする方法はありますか?
ありがとう!
解決
通常、Firebirdデータベースをコンパクトする必要はありません。GarbageCollectionに関するFBリリースノートと「Swee」という名前の自動(Database Persabase Configurable)操作を参照してください。いくつかの言葉で、FBは、レコードが削除されているか、最も古いレコードバージョンが解放されたときにページにスペースを再利用します。自由スペースが小さくなりすぎる(つまり、定義されたパーセントの下)。スイープは、事前定義された数のコミットされた取引の後にデフォルトとして実行されます。これは高価なタスクです。バックアップと復元は、インデックスも再構築および最適化するため、最適化と縮小を行うための最後の手段として意図する必要がありますが、通常、インデックスを再構築するコマンドとツールがあるため、これは必要ありません。
他のヒント
それを行う唯一の方法は、バックアップと復元を作成することです。
から 公式のFAQ
多くのユーザーは、データベースから多くのレコードを削除するときにディスクスペースを取り戻さない理由を疑問に思います。
その理由は、それが高価な操作であり、ハードディスクパーティションの再現を行うのと同じように、多くのディスクの書き込みとメモリが必要だからです。そのようなデータで使用されたデータベース(ページ)の部分は空のマークとマークされ、Firebirdは次に新しいデータを書き込む必要があるときにそれらを再利用します。
ディスクスペースが重要な場合は、バックアップを実行して復元することでスペースを取り戻すことができます。すぐに復元するためにバックアップを行っているので、「Garbage Collectionを阻害する」または「Garbage Collectionを使用しない」スイッチ(GBAKで-G)を使用することが賢明です。これにより、バックアップがより速くなります。 Garbage Collectionはデータベースのクリーンアップに使用されます。メンテナンスタスクであるため、バックアップと一緒に行われることがよくあります(バックアップがデータベース全体を通過する必要があるため)。ただし、すぐにそのデータベースファイルを捨て、クリーンアップする必要はありません。