我有一个表test
,我在其中插入 40000 条记录,我将我的数据库文件分成两个文件组,如下所示:
如您所见,基于循环算法的两个文件的大小增加了 160 mb。在此之后,我删除了表中的数据。但是两个文件(FileGroup)的大小仍然保持在 160 mb 上。为什么?
我有一个表test
,我在其中插入 40000 条记录,我将我的数据库文件分成两个文件组,如下所示:
如您所见,基于循环算法的两个文件的大小增加了 160 mb。在此之后,我删除了表中的数据。但是两个文件(FileGroup)的大小仍然保持在 160 mb 上。为什么?
这是因为 SQL Server 假设如果您的数据库曾经变得那么大,那么它很可能需要再次这样做。为了节省每次 SQL Server 想要使用更多磁盘空间时从操作系统请求空间的开销,除非您手动发出SHRINK DATABASE
命令,否则它将简单地保留它所拥有的空间并根据需要填充它。
shrink
通常被认为是一个坏主意,除非您非常有信心您的数据库在将来的某个时候不需要该空间。