我在 SQL Server 2005 中有一个巨大的表。(该表大约 40gb)我正在寻找释放空间或延迟其增长的最安全、最轻松的方法。
该表具有三个固定长度 ( char(10)
) 列,它们是 a) 完全不需要的和 b) 几乎完全被填充的NULL
。
如果我删除这些列,SQL Server 会在导入新记录时开始使用数据文件中的空闲空间吗?还是由于分布在许多记录上而导致它们的碎片化性质(我假设)意味着 SQL Server 会出于性能原因而忽略这些空间?
如果我确实删除了它们,我可以运行收缩数据库来释放空间吗?
我是唯一使用此数据库的开发人员,而且我知道这些列已超出要求。15 年前,当不同的懒惰开发人员创建这个数据库时,它们与其他列一起添加到一个平面文件中。
注意:用于回收空间的索引重建假设您有一个聚集索引