论坛上经常会有很多人抱怨数据库HEAP表碎片很大,无法收缩。在2005之前可以通过创建聚集索引解决或者重建表将数据导入,等到表空间变小后再进行收缩。在2008中有一个新的语法ALTERTABLE REBUILD,使用这条语句可以重新生成表。

 

下面是我自己的一个表,碎片非常大,占用了大概11G的空间:

使用ALTER TABLE REBUILD减小HEAP表空间 _HEAP表

 

使用ALTER TABLE REBUILD之后的效果(差距巨大吧,已经变成了131M):

 

使用ALTER TABLE REBUILD减小HEAP表空间 _HEAP表_02

这样就避免了在2005中创建表然后导入再更新表一些列的操作,非常简便。