9

アプリケーションの SQL Server Compact Edition (3.5) データベースを最適化するために定期的に実行されるメソッドがあります。既存のコードは Shrink() メソッドを使用します。

        SqlCeEngine engine = new SqlCeEngine(dbConnectionString);
        engine.Shrink();

今日、Compact() メソッドもあることに気付きました。定期的なメンテナンスに適しているのはどれですか?

4

1 に答える 1

9

SQL Server Compact Teamブログから:

これら2つの違いは、内部メモリと外部メモリの断片化によく似ています。


SqlCeEngine.Shrinkのドキュメント から、

空の未割り当てページをファイルの最後に移動し、ファイルを切り捨てることにより、データベース内の無駄なスペースを再利用します。接続文字列で自動縮小しきい値オプションを設定することにより、データベースを自動的に縮小するように構成できます。Shrinkは一時データベースファイルを作成しません。

SqlCeEngine.Compactのドキュメントから、

既存のファイルから新しいデータベースファイルを作成することにより、データベース内の無駄なスペースを再利用します。新しいデータベース手段を作成することにより、行間の空き領域を再利用します。


より明確にするために、Shrinkは完全に無料または未割り当てのページを主張しています。一方、Compactは、ページ内の無駄なスペースも主張しています。したがって、Compactでは新しいデータベースファイルを作成する必要があります。

于 2009-04-01T22:47:14.400 に答える