首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

unallocated space无法释放有关问题[紧急]

2012-11-20 
unallocated space无法释放问题[紧急]sql server 2008 r2使用sp_spaceused命令发现:unallocated space非常

unallocated space无法释放问题[紧急]
sql server 2008 r2


使用sp_spaceused命令发现:
unallocated space

非常大,50G中有35G是 unallocated space 这个应当怎么释放掉?


用一般的数据库和文件收缩无法释放。

谢谢!

[解决办法]
....那是未分配的空间。。。
[解决办法]
DBCC SHRINKFILE (DB_log, n)
[解决办法]
dbcc shrinkfile 
对数据库文件和日志文件分别收缩

另外使用sp_spaceused的时候
exec sp_spaceused true 这样会更新一下统计信息
不加true你看到的可能不是最新的
[解决办法]
EXEC sp_spaceused @updateusage='true'
[解决办法]
重建一下聚集索引再收缩咯
[解决办法]
在频繁进行增删的表上重建索引试试

dbcc dbreindex('表名','',90)
[解决办法]

探讨

重建一下聚集索引再收缩咯

[解决办法]
不重建索引的话可能根本收缩不了的,SQL Server管理数据库文件的级别是区,重建索引可以腾出很多空区,这样就可以收缩掉了。 

如果是HEAP表的话建议重新创建表然后将数据导入到新表然后改名,否则可能无法收缩。 


[解决办法]
重建了索引,能把数据重组。这样有可能空出某些区,由于收缩是基于区一级的操作。所以收缩起来才有意义,如果本来可以集中在一个区的数据零散分布于多个区,收缩是没有效果的。
[解决办法]
探讨

Reserved下面的unused可以通过重建聚焦索引解决,但对unallocated space没有用。这些方法都试过了。


现在想释放掉:unallocated space,还有没有好的办法?

[解决办法]
运行DBCC CHECKDB检查一下数据库
[解决办法]
如果数据库有完整备份,使用备份来恢复数据库
如果没有备份使用DBCC CHECKDB
使用dbcc checkdb 的repair_rebuild参数:不丢失数据
不行的话使用repair_allow_data_loss :有可能丢失数据

热点排行