テーブルの再作成後、SQL Server バックアップ ファイルが大幅に小さくなる

テーブルの再作成後、SQL Server バックアップ ファイルが大幅に小さくなる

当社では、SQL Server の自動週次バックアップを実行しています。問題のデータベースは、シンプル リカバリ用に構成されています。差分ではなく、完全バックアップを使用してバックアップします。

最近、データを含むテーブルの 1 つを再作成する必要がありました (2 つの varchar フィールドを数文字長くする)。このためには、新しいテーブルを作成し、データをコピーしてから古いテーブルを削除するスクリプトを実行する必要がありました。これは正常に機能しました。

奇妙なことに、週次バックアップ ファイルは 75% 以上も縮小されました。テーブルには大きなインデックスはありません。すべてのデータは正しくコピーされ (検証済み)、バックアップは増分ではなく完全バックアップで行われていることを確認しました。新しいファイルは問題なく復元されます。

バックアップ ファイルがなぜこれほど小さくなったのか、私には理解できません。また、追加されるデータの量はそれより少ないのに、毎週約 10 MB ずつ大きくなっていることにも気付きました。

単に私が何かを理解していないだけだと思います。 ご意見をお聞かせいただければ幸いです。

答え1

すべてのデータがそこにある場合、データベースのトランザクション ログがデータベースにコミットされ、ディスクから削除され、データベース内の「空白」が除去されます。ほとんどのデータベースでは、データが削除されると行は削除されますが、その後その行に新しいデータは挿入されないため、データが含まれていないが物理的なスペースを占有する「空白」が大量に発生する可能性があります。

データベースの論理サイズ (データが占めるサイズ) とデータベースの物理サイズ (データベース ファイルが占めるサイズ) には違いがあり、その違いは通常、上記の 2 つの要素の組み合わせによって生じます (ほとんどの場合)。

関連情報