DBCC收缩数据库

原文 http://www.cnblogs.com/sunshineflower/archive/2013/04/17/3026233.html

  DBCC是SQL Server的数据库控制台命令。它可以提供多种命令,用于实现数据库维护、验证、获取信息等功能。

用法一:使用DBCC SHRINKDATABASE语句收缩数据库
     使用DBCC SHRINKDATABASE语句可以收缩指定数据库中的数据文件和日志文件的大小,其基本语法结构如下:

  基本语法:
  DBCC SHRINKDATABASE(数据库名|数据库ID|0,目标百分比,NOTRUNCATE|TRUNCATEONLY)


  在DBCC SHRINKDATABASE后面需要指定要收缩的数据库名称或数据库ID。如果使用0,则收缩当前数据库。

  参数“目标百分比”,可选,只对收缩数据文件有效。使用此参数后,文件末尾已分配的页移动到文件前面未分

配的页。文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会改变。
参数“TRUNCATEONLY”,可选,也只对收缩数据文件有效。使用此参数后,文件末尾的所有可用空间都会释放给

操作系统,但不在文件内部执行页移动操作。因此,使用此参数数据文件只能收缩最近分配的区。

例如,收缩数据库db_test,剩余可用空间为10%,代码如下:

DBCC SHRINKDATABASE(db_test,10)

 

  需要注意的是,数据库空间并不是越小越好。因为大多数数据库都需要预留一部分空间,以供日常操作使用。因

此,在收缩数据库时,如果数据库文件的大小不变或者反而变大了,则说明收缩空间是常规操作所需要的,这是

,就不需要收缩数据库了。

用法二:使用DBCC SHRINKDATABASE语句收缩指定的数据库文件

  基本语法:
  DBCC SHRINKFILE(文件名|文件ID|0,EMPTYFILE,收缩后文件的大小,NOTRUNCATE|TRUNCATEONLY)

  参数文件名,必填,指要收缩的数据库文件的逻辑名称。
  参数EMPTYFILE,可选,数据库引擎将当前文件的所有数据都迁移到同一文件组中的其他文件,然后可以使用

ALTER DATABASE语句来删除该文件。
  参数"收缩后文件的大小"用整数表示,单位为MB。如果未指定此参数,则文件减少到默认的文件大小。
  参数“TRUNCATEONLY”,可选,也只对收缩数据文件有效。使用此参数后,文件末尾的所有可用空间都会释放给

操作系统,但不在文件内部执行页移动操作。因此,使用此参数数据文件只能收缩最近分配的区。

例如:将数据库db_test中的db_test1文件收缩的20MB,代码如下:

DBCC SHRINKFILE(db_test1,20);

 

例如:使用EMPTYFILE关键字清空数据库文件。
将数据库db_test中的db_test1文件清空,然后使用ALTER DATABASE语句来删除该文件,代码如下:

DBCC SHRINKFILE(db_test1,EMPTYFILE)
GO

ALTER DATABASE db_test1 REMOVE FILE dbtest1

 

例如:有时候日志文件会变得很大,可以使用DBCC SHRINKFILE来收缩日志文件,代码如下:

DBCC SHRINKFILE (db_test_Log, 1);
posted on 2013-04-25 10:22 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/archive/2013/04/25/3041869.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值