我在 SQL Server 2005 中有一个大表,占用了大约 3.5 GB 的空间(根据 sp_spaceused)。它有 1000 万条记录和多个索引。
我只是从中删除了一堆列,这样记录长度就减少了一半,令我惊讶的是,它花了零时间来做到这一点。显然,sp_spaceused 仍然报告相同的占用空间,SQL 服务器在删除列时并没有真正做任何事情,除了将它们标记为“已删除”。
所以我把这个表中的所有数据移到另一个新表中,截断它,然后把所有数据移回来,这样它就会全部重建。
现在,在那之后,数据占用了 2.8 GB,比以前少了,但我预计会有更大的下降。
该表最初具有这些列的事实是否可能仍然存在?
截断它还不够吗?我应该删除它并使用较小的列集再次创建它吗?
还是数据真的需要 2.8 GB?
谢谢!