sql server删除数据后,磁盘空间不变,压缩数据库及删除数据库表的方法比较

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

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

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

1
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 @   MakeGod  阅读(4144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示