プロが教えるわが家の防犯対策術!

テーブル内の未使用領域を解放する事が出来ずに困っています。

SQL Server 2000で運用中のデータベースで200MB程度を想定していた
テーブルが、600MB程度になっていました。おかしいなと思い、
インデックスの再構築でもすれば何か状況が変わるかなと以下の
手順を行いました。

該当のテーブルをDBCC DBREINDEXした後、sp_spaceusedで確認

 data と index_size のサイズは約半分に減少
 しかしその分 unused が増加

この後データベースを圧縮すれば、unusedの部分が解放されるかと
思いやってみたのですが

 unused の領域はそのままで解放されず
 data と index_size のサイズが約倍に増加(ほぼ元に戻っている)

という状況になってしまいました。

お聞きしたい事は以下の2点です。

1. データベースを圧縮すると、テーブル内のデータ量が増加したように見えるのですが、これは何が起きているのでしょうか?

2. テーブル内の未使用領域を解放する方法は無いでしょうか?

よろしくお願いいたします。

A 回答 (1件)

直接質問されている2点への回答ではないのですが、


DBの容量が膨らんでいるのは
インデックスと言うよりは、トランザクションログが膨らんでるような気がします。

バックアップモードがどうなっているのか、バックアップを定期的に行っているのかでトランザクションログの状況が変わります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す