2009-10-18 16 views
7

私はVisual Studio 2008を使用しています。私はsqlce.Iで新しくなりました。sdfファイルをチェックしています。sdfが存在しない場合、作成してからsqlce db.Ifに5000行を挿入します。これらのレコードを既存のテーブルに挿入します。挿入完了後、私はデータベースを圧縮しています。圧縮は約13秒続きます.Shrink.ShrinkとCompactを呼び出すメソッドを知っていますが、私は使用していますか?どのように短時間でコンパクトにすることができますか?sdfのバックアップは必要ありません。コンパクトの後、古いsdf.iを削除します。thisトピックを読んでいますが、Sql Server CEで縮小またはコンパクト?

答えて

13

ご覧ください。

SQL Server Compact Team Blogから引用

SqlCeEngine/ISSCEEngine: これら両者の差が非常に似ている対コンパクトシュリ​​ンク内部 および外部メモリフラグ指導。 SqlCeEngine.Shrink documentationから

は、ファイルを切り捨て、ファイルの末尾に空と未割り当てページ を移動することによって、データベース で無駄なスペースを再利用して、 。 自動的にデータベースを設定する 接続文字列に自動縮退 しきい値オプションを設定して、データベースを縮小することができます。 縮小すると、データベースファイル が一時的に作成されません。 SqlCeEngine.Compact documentationから

は 、既存のファイルから新しいデータベースファイルを作成することにより、データベース で無駄なスペースを再利用します。新しい データベースを作成することによって、行間に空きのスペースが解放されます( )。

さらに明確にするために、シュリンクは、完全に無料の ページを請求します。 未割り当てです。 where as、Compactは、ページ内の無駄なスペースもまた と主張しています。 コンパクトなので、新しい データベースファイルを作成する必要があります。ページのある

空きスペースは、結果として があり得る:5ページ の行と列がであった場合、それらの二つが) を削除しているがあった場合

1)アップデートの詳細 のスペースを必要と ページの中央には、ページの外に移動した(例: nvarchar型の列更新)空のページと未割り当てページ が再としてデータベースに残る可能性が

SULT :

1)ページのすべての行が

2を削除された)テーブル全体を

を落としています
関連する問題