0

重複の可能性:
テーブルを完全に削除するときに SQL Server 2005 データベースの領域を再利用する

私は 20GB を必要とするテーブルを持っていましたが、それは必要ありませんが、削除された各行エントリのログが原因で LDF ファイルが急速に大きくなるため、DELETE ステートメントを使用することはできませんでした。

したがって、TRUNCATE TABLE を使用しましたが、このテーブルを削除しても、db はまだ同じ量のスペースを使用しています。データベースの縮小オプションを使用する必要があることをどこかで読んだことがありますが、問題は、データベース内のすべてのインデックスを削除する必要があるということですか?

何をすることをお勧めしますか?この未割り当て領域を MDF ファイルから解放する他の方法はありますか?

ありがとう

4

1 に答える 1

0

代わりにシュリンクファイルを使用できます

MSDNの構文

DBCC SHRINKFILE 
(
    { file_name | file_id } 
    { [ , EMPTYFILE ] 
    | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
    }
)
[ WITH NO_INFOMSGS ]

現在のデータベースの指定されたデータまたはログ ファイルのサイズを縮小するか、指定されたファイルから同じファイル グループ内の他のファイルにデータを移動してファイルを空にし、ファイルをデータベースから削除できるようにします。ファイルを作成時に指定したサイズよりも小さいサイズに縮小できます。これにより、最小ファイル サイズが新しい値にリセットされます。

/* change into your database */
USE dbName
/* determine the logical file name */
EXEC sp_helpfile
GO
/* shrink the file */
DBCC SHRINKFILE (logicalLogFileName)
GO
于 2012-11-17T11:02:18.310 に答える