首先,我知道最好不要收缩数据库。但在我们的情况下,我们不得不缩小数据文件以收回更多空间。
环境:SQL Server 2005 x64 SP3 Ent 在 Windows Server 2003 Enterprise x64 上运行。
数据库有一个单一的数据文件和一个日志文件。在我们运行 DBCC SHRINKFILE 之前,数据文件有 640GB,其中 400GB 是空闲的,所以数据大约是 240GB。为了加快收缩过程,我们必须先对数据库进行碎片整理,然后再收缩数据文件。
但是,我们使用 DBCC SHRINKFILE 收缩数据库数据文件后,数据变为 490GB。怎么会发生?