2009-06-01 16 views
0

最近私のアプリケーションテーブルでパージを実行します。合計11.12GBのディスク容量と11.12GBを記録しました。パージされたテーブルのテーブルサイズが縮小されない

私は860kのレコードを削除して290kのレコードを残しましたが、なぜ私のスペースは11.09GBに減少しましたか?

レポート - ディスク使用量 - データファイルで使用されるディスク容量 - 使用済み領域で詳細を監視します。

私はperfromのデータファイルを縮小する必要がありますか?これは長い時間困惑しています。

+0

プラットフォームは何ですか?どのOS?どのデータベースエンジンですか? MySQL? SQLサーバー?他に何か?また、大部分のデータベースエンジンは、圧縮プロセスを実行するまで、OSに空き領域を解放しません。 –

+0

Windows 2003.クラスタ環境で実行されているSQL Server 2005。私は2 dbのインスタンスを持っています。 dbは私がレコードをパージした後に使用されるかなりのスペースを減らします。パージを実行した後のDB Bの場合です。私に使用されているディスク容量の改善を私に与えることはありません。あなたは締め固めのステップで何を意味しますか? –

答えて

1

データファイルを縮小する操作(データベース管理システム固有の操作)を明示的に呼び出す必要があります。レコードを削除すると、データベースエンジンはファイルを縮小しません。これは最適化のためです。圧縮には時間がかかります。

+0

db実行中にデータファイルを縮小できますか? dbは約11GBです。それは収縮するのに長い時間かかりますか? –

+0

いいえ、考えられません。使用するデータベースソフトウェアのマニュアルを参照する必要があります。 – sharptooth

0

Thunderbirdのメールフォルダのようなものだと思う:何かを削除すると削除されたようにマークされますが、より高いパフォーマンスを得るにはスペースは解放されません。したがって、あなたの11.09 GBのほとんどに古いデータか0が含まれます。圧縮データファイルは、残っている実際のデータのみを含む新しいファイルを作成することによって、これを「圧縮」(または「クリーン」)します。

0

おそらくテーブルを縮小する必要があります。私はSQLサーバーがあなたのためにデフォルトでそれをしないことを知っています、私はこれが性能の理由のためだと思います、多分他のDBsは同じです。

3

MS SQL Serverの場合は、クラスタ化インデックスを再構築してください。

削除された行のみがあります。再利用されたスペースではありません。 (ディスク容量のレポートはSSMSであるので、それのMS SQL)

DBCC DBREINDEXまたはALTER INDEX ... WITH REBUILD verisonに応じて

+0

ALTER INDEX ... WITH REBUILDはSQL Server 2005以降で非常に優先されています。 –

+0

True、DBREINDEXは後で廃止される予定ですが、すべてのベースをカバーしています... – gbn

+1

インデックスを再構築することで、テーブルの容量が600MBから200KBに大幅に削減されました。 'ALTER TABLE

REBUILD;' –

関連する問題