Ghost Records和MS Sql Express大小限制

时间:2014-05-06 12:56:56

标签: sql-server

考虑一下我们有一个MS SQL Express数据库,它已经增长到近10 Gb。并且考虑我们有一个包含聚集索引的大表。

现在我们要通过删除该表中的某些行来释放一些空间。删除后,db size保持原样,行变为ghost记录。

问题是如果数据库大小达到10 GB的限制会对这些GR产生什么影响?他们会被清洗干净吗?

2 个答案:

答案 0 :(得分:1)

它们不会被自动清理。最好的选择是使用

ALTER TABLE <table_name> REBUILD

摆脱所有人工制品。

答案 1 :(得分:0)

执行以下命令并检查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>’

您可以使用sp_spaceused查看数据库中的可用空间量

使用DBCC SHRINKDATABASEDBCC SHRINKFILE缩小特定数据库的数据和日志文件