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)
这时候去看看文件大小,发现小了很多
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?