sql server删除数据后,磁盘空间反而增大?压缩数据库及删除数据库表的方法比较

问题:sql server删除数据后,磁盘空间反而增大?

原因是:删除数据,会记录日志,所以磁盘空间反而增大。

要怎么做,才能释放空间?以下的databaseA是数据库的名称,注意数据库名称要用括号括起来

dbcc shrinkdatabase (databaseA) 

解释: 

DBCC SHRINKDATABASE

功能:压缩数据库

用法:DBCC SHRINKFILE (N'tableAlog' , 10)            #收缩日志文件大小(单位是M)

注意:只有产生许多未使用空间的操作(如截断表或删除表操作)后,执行收缩操作最有效,产生碎片较少。其他情况请勿执行,因为虽然释放了空间,但是会产生大量碎片

 

所以,总结,以后删除数据库表的步骤如下(其中tableA是表名,databaseA是数据库名):

第一步:

执行

delete from tableA        这个语句是删除数据,执行效率低

drop table tableA          这个语句是删除表,效率一般

执行完后发现空间大小反而变大

或 

truncate table tableA  这个语句是清空表,效率高,推荐

执行完后发现空间大小无变化

第二步:

DBCC SHRINKDATABASE ( databaseA)

这时候去看看文件大小,发现小了很多

posted @ 2022-02-09 10:50  katesharing  阅读(3300)  评论(0编辑  收藏  举报