• 締切済み

SQL Server 2000 テーブル未使用領域の解放について

テーブル内の未使用領域を解放する事が出来ずに困っています。 SQL Server 2000で運用中のデータベースで200MB程度を想定していた テーブルが、600MB程度になっていました。おかしいなと思い、 インデックスの再構築でもすれば何か状況が変わるかなと以下の 手順を行いました。 該当のテーブルをDBCC DBREINDEXした後、sp_spaceusedで確認  data と index_size のサイズは約半分に減少  しかしその分 unused が増加 この後データベースを圧縮すれば、unusedの部分が解放されるかと 思いやってみたのですが  unused の領域はそのままで解放されず  data と index_size のサイズが約倍に増加(ほぼ元に戻っている) という状況になってしまいました。 お聞きしたい事は以下の2点です。 1. データベースを圧縮すると、テーブル内のデータ量が増加したように見えるのですが、これは何が起きているのでしょうか? 2. テーブル内の未使用領域を解放する方法は無いでしょうか? よろしくお願いいたします。

みんなの回答

  • norayuni
  • ベストアンサー率79% (27/34)
回答No.1

直接質問されている2点への回答ではないのですが、 DBの容量が膨らんでいるのは インデックスと言うよりは、トランザクションログが膨らんでるような気がします。 バックアップモードがどうなっているのか、バックアップを定期的に行っているのかでトランザクションログの状況が変わります。

すると、全ての回答が全文表示されます。

関連するQ&A