考虑一下,我们有一个数据库,它已经发展到了将近10 Gb。假设我们有一张大桌子,里面有一个聚类索引。
现在,我们希望通过从该表中删除一些行来释放一些空间。删除后,db大小保持不变,行成为鬼记录。
问题是,如果db大小达到10 GB的限制,这些GRs会发生什么?它们会被清洗吗?
发布于 2014-05-06 13:07:19
它们不会被自动清洗。最好的选择是使用
ALTER TABLE <table_name> REBUILD把所有的手工艺品都扔掉。
发布于 2014-05-06 13:10:13
执行以下命令并检查Ghost_Record_Count和Version_Ghost_Record_Count列。如果这个值很高(在某些情况下是几百万),那么您很可能遇到了鬼记录清理问题。
Select * from sys.dm_db_index_physical_stats(db_id(<dbname>),<ObjectID>,NULL,NULL,’DETAILED’) 下面的命令将释放幽灵记录
EXEC sp_clean_db_free_space @dbname=N’<dbname>’您可以使用太空查看db中空闲空间的数量。
使用DBCC SHRINKDATABASE或DBCC SHRINKFILE缩小特定数据库的数据和日志文件
https://stackoverflow.com/questions/23495387
复制相似问题