【MSSQL】shrinkdatabase和shrinkfile区别

本文详细介绍了SQL Server中的DBCC SHRINKDATABASE和DBCC SHRINKFILE命令,分别用于收缩数据库和文件。内容涵盖两者区别、参数说明、使用场景以及注意事项,帮助理解如何有效地管理和调整数据库空间。
摘要由CSDN通过智能技术生成

具体内容请看 SQL 2005技术内幕之存储引擎第4章

DBCC SHRINKFILE不能将文件大小缩小到比存储数据所需空间还小的尺寸.
DBCC SHRINKDATABASE不能收缩到比MODEL数据库还小,并且也不能将一个文件收缩到比其最小还小.
TRUNCATEONLY能使一个数据文件中的所以为被使用空间都被释放给操作系统,但不会试图重新分配数据行到未分配的页面.

DBCC SHRINKDATABASE

收缩指定数据库中的数据文件大小。

语法

DBCC SHRINKDATABASE

    ( database_name [ , target_percent ]

        [ , { NOTRUNCATE | TRUNCATEONLY } ] 

    )

参数

database_name

是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。 

target_percent

是数据库收缩后的数据库文件中所要的剩余可用空间百分比。 

NOTRUNCATE

导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。 

TRUNCATEONLY

导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略 target_percentis。

注释

Microsoft® SQL Server™ 可收缩: 

特定数据库的所有数据和日志文件。执行 DBCC SHRINKDATABASE。

一次一个特定数据库中的数据或日志文件。执行 DBCC SHRINKFILE。 

DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。然而,DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池中。 

假设名为 mydb 的数据库有两个数据文件和两个日志文件。这些数据文件和日志文件大小都为 10 MB。第一个数据文件包含 6 MB 数据。

对于每个文件,SQL Server 计算目标大小,即要收缩文件到的大小。当用 target_percent 指定 DBCC SHRINKDATABASE 时,SQL Server 计算的目标大小是收缩后文件中的 target_percent 可用空间大小。例如,如果指定按 target_percent 为 25 收缩 mydb。SQL Server 计算的该文件的目标大小为 8 MB(6 MB 数据加上 2 MB 可用空间)。因此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值