2024年5月30日发(作者:)

sqlserver收缩数据库

为什么要收缩数据库

SQL Server 2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件,

比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储

空间的浪费。为此,SQL Server 2000提供了收缩数据库的功能,允许对数据库中的每个

文件进行收缩,删除已经分配但没有使用的页。

不能将整个数据库收缩到比其原始大小还要小。因此,如果数据库创建时的大小为 10

MB,后来增长到100MB,则该数据库最小能够收缩到10MB(假定已经删除该数据库中

所有数据)。不能在备份数据库时收缩数据库,也不能在收缩数据库时创建或备份数据库。

4.8.2 什么是自动收缩和手动收缩

SQL Server 2000支持对数据库实行自动收缩和手工收缩。在如图4.38所示的数据库

属性的【选项】选项卡中选择【自动收缩】复选框将实现自动收缩。SQL Server 2000服

务器每30分钟检查数据库的空间使用情况。如果发现大量闲置的空间,就会自动缩小数

据库的文件大小。

图4.38 设置自动收缩功能

利用企业管理器或DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 语句可以完成

手工收缩操作。

4.8.3 收缩数据文件和日志文件有什么不同

不论是收缩数据文件还是日志文件,都会确实减少物理文件的大小,两者不同之处如

下。

数据文件可以作为文件组或单独地进行手工收缩。日志文件收缩分别考虑每个文件,