当前位置: 代码迷 >> Sql Server >> 数据库未使用空间很大,但收缩数据库没作用解决思路
  详细解决方案

数据库未使用空间很大,但收缩数据库没作用解决思路

热度:65   发布时间:2016-04-24 09:06:10.0
数据库未使用空间很大,但收缩数据库没作用
RT:

使用了
DBCC SHRINKDATABASE(N'databasename',10,TRUNCATEONLY)
DBCC SHRINKFILE(N'filename',10,TRUNCATEONLY)
都没效果
------解决思路----------------------
checkpoint
go  
DBCC SHRINKFILE (XXXX_Data , 300 ) 
DBCC SHRINKFILE (XXXX_log , 1 , TRUNCATEONLY)
go
------解决思路----------------------
楼主这个适用于SQL2008
USE [master]
GO
ALTER DATABASE databasename SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE databasename SET RECOVERY SIMPLE   --简单模式
GO
USE databasename 
GO
DBCC SHRINKFILE (N'filename' , 11, TRUNCATEONLY)
GO
USE databasename
GO
ALTER DATABASE databasename SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE databasename SET RECOVERY FULL  --还原为完全模式
GO

------解决思路----------------------
DBCC SHRINKDATABASE(databasename)

------解决思路----------------------
是2008以上的版本吧

1.完整备份数据库
2.设置数据库恢复模式为简单
3.收缩数据库
4.设置数据库恢复模式为完整

如果这样还不行,检查数据库文件的初始大小,如果是很大的,比如说5位数以上,就说明收缩完最小也是几十G,把这些数字改小就行了。
  相关解决方案