寻求任何针对我目前看到的问题的指导,我的一个 SQL 服务器在删除行后没有释放空间。
我正在运行带有 SP1 CU4(10.0.2734)的 SQL Server 2008 Enterprise x64,并且具有四节点对等复制配置。
我看到大量记录已准备好通过 sys.dm_db_index_physical_stats(ghost_record_count)供幽灵清理任务使用,但这些计数并没有减少。
奇怪的是,我只在四节点对等配置中的一台服务器上遇到了这个问题,也就是说,其他三个节点成功清理了已删除的行,并且它们各自的 ghost_record_counts 最终被减少到零。遇到此问题的节点是用于恢复/设置对等复制拓扑中的其他节点的主体/初始节点。
我尝试过重组和重建受影响的索引,但这并没有改变完成后 ghost_record_count 的数字。完整的 CHECKDB 也不会产生任何错误/一致性问题。
帮助? :)
答案1
已重新启动有问题的服务器并且问题已自行解决 - ghost-cleanup 任务已在第二天清除了 ghost_record_count 行:) 数据库可用空间急剧增加。
我不会说重启后问题会自行解决,这对我的信心有很大帮助,因为我不知道是什么导致了这个问题,需要在我的日常健康检查中密切关注 ghost_record_count。