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)
这时候去看看文件大小,发现小了很多
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/keeplearningandsharing/p/15874092.html