データベースの圧縮について

SeNaNo
2013-12-12 10:25 1769 1
お世話になります。
初歩的な質問かもしれませんが、よろしくお願いします。

SQL Server 2005 を使用しています。
比較的大きいサイズのデータベース「A」があります。
Dataフォルダ内のサイズは次の通りです。
・A.mdf 50MB
・A_1.mdf 4.4GB
・A_log.ldf 1.2GB
この「A」を別の用途で使用したいため、全てのテーブルのデータを削除しましたが、Dataフォルダ内のサイズがほとんど変わりません。
プロパティのデータベースの圧縮で見ると、空き容量が98%と表示されているので、無駄な領域が多いのは分かるのですが、実際に圧縮をかけても小さくなりませんでした。
方法が悪いのかもしれませんので、データベースを圧縮する手順を教えて頂ければ幸いです。
よろしくお願いします。

コメント

2013年 12月 18日 (10:20)
こんにちは。
イノ(inno)です。

まずはトランザクションログをバックアップしてSHRINKFILEで圧縮するとできると思います。
次のように使います。

BACKUP DATABASE [データベース名] TO DISK = N'NUL'
BACKUP LOG [データベース名] TO DISK = N'NUL'
DBCC SHRINKFILE ('[論理ファイル名]', [圧縮サイズ(単位:MB)])

ですので、質問の内容に合わせて作成してみると。。

BACKUP DATABASE [A] TO DISK = N'NUL'
BACKUP LOG [A] TO DISK = N'NUL'
DBCC SHRINKFILE ('A_1', 1)

になります。
SHRINKFILEの[論理ファイル名]を確認するためにはsp_helpfileを実行すると分かります。
詳しくは下記のリンクをご参考ください。

http://www.innoya.com/Board/ViewBlog.aspx?menuID=4&idx=256