SQL Server 2005に巨大なテーブルがあります。(テーブルは約40 GBです)スペースを解放するか、その成長を遅らせるための最も安全で最も痛みのない方法を探しています。
テーブルには3つの固定長(char(10)
)列があり、a)完全に不要で、b)ほぼ完全にNULL
で埋められています。
これらの列をドロップすると、新しいレコードがインポートされたときに、SQL Serverはデータファイル内の解放されたスペースを使用し始めますか?または、多くのレコードに分散しているために断片化された性質(私は推測)は、SQL Serverがパフォーマンス上の理由でスペースを無視することを意味しますか?
それらを削除した場合、縮小データベースを実行してスペースを解放できますか?
私はこのデータベースを利用する唯一の開発者であり、これらの列は要件に対して余剰であることを知っています。これらは、15年前に別の遅延開発者がこのデータベースを作成したときに、フラットファイルのその他すべての列とともに追加されました。
注:スペースを再利用するためのインデックスの再構築では、クラスター化インデックスがあることを前提としています