1
大きなテーブルを1つ持つSQL 2005データベースがあります。私は、テーブルからいくつかのアイテムを削除するためにDELETEを実行しました。私はそのスペースをOSに戻す必要があります。SQL 2005データベースからスペースを取り戻そうとしています
私は次のコマンドに
DBCC SHRINKDATABASE (MyDB, TRUNCATEONLY);
DBCC SHRINKFILE (MyTable, TRUNCATEONLY);
を試してみましたし、私もSHRINKコマンドは効果がなかったし、インデックスの再構築、データベースのサイズを増加させ、次のコマンド
ALTER INDEX [IX_Clustered] ON [dbo].[MyTable] REBUILD WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF)
でクラスタ化インデックスを再構築してきました35GB(データベースは1.5TB)です。
私は迷っています。未使用のデータベーススペースを取り戻すために何をする必要がありますか?
編集:ログファイルに問題はありません。メインデータベースの.MDFファイルが大きすぎます。
編集2:ここではの結果はMyTableという sp_spaceusedをされています
rows reserved data index_size unused
----------- ------------------ ------------------ ------------------ ------------------
1031649352 1543899648 KB 1481718624 KB 54444664 KB 7736360 KB
問題は発生しておらず、別のドライブにあります。 .MDFファイルのみが大きすぎます。 –
OK - 空き領域を試しましたか?
私は今それを行い、その結果を質問に追加しました。 –
DBREINDEXを使用してインデックスを再作成し、統計情報を更新してから縮小してみてください。それは私のトリックでした。
出典
2009-07-07 13:58:10
また、UIからデータベースの縮小コマンドを試してみましたか? –
DBCC DBREINDEX( '?'、 ''、80)コマンドは70GBの.MDFファイルの増加を引き起こし、失敗しました。( –
これは有望ではありません:)置き換えましたか?あなたのテーブル名は? DBCC_DBREINDEXを使用して私のために働いた。大規模なデータベースからデータの90%を削除し、DBCC_DBREINDEXを実行してからTHENを縮小すると、そのデータサイズはどこにあるのかがわかりました。 –
LOBデータ、つまりTEXT、NTEXT、IMAGEまたはXMLのデータ型を削除しましたか?
LOBデータを削除した場合は、領域を再利用するために表を再構築する必要があることがあります。
実際にあなたの人物を見てみると、スペースの99%がデータ+インデックスに取り込まれています。あなたが再利用しようとしている空き領域はどこですか?
出典
2009-09-08 10:28:37
関連する問題