обращаясь к любым рекомендациям по проблеме, которую я вижу в настоящее время, один из моих серверов SQL не освобождает место после удаления строк.
Я использую SQL Server 2008 Enterprise x64 с SP1 CU4 (10.0.2734) и имею конфигурацию одноранговой репликации с четырьмя узлами.
Я вижу большое количество записей, готовых к использованию задачей очистки от призраков через sys.dm_db_index_physical_stats (ghost_record_count), однако эти количества не уменьшаются.
Как ни странно, я испытываю эту проблему только на одном из серверов в одноранговой конфигурации с четырьмя узлами, то есть три других узла успешно очищают удаленные строки, а их соответствующие ghost_record_counts в конечном итоге сокращаются до нуля. Узел, на котором возникла эта проблема, был основным / начальным узлом, используемым для восстановления / настройки других узлов в одноранговой топологии репликации.
Я пробовал как реорганизовать, так и перестроить обработанные индексы, однако это не меняет цифры ghost_record_count после завершения. Полная CHECKDB также не вызывает проблем с ошибками / согласованностью.
Помогите? :)
Перезагрузили неисправный сервер, и проблема решилась сама собой - задача очистки от призраков очистила строки ghost_record_count на следующий день :) Свободное место в базе данных резко увеличилось.
Я бы не сказал, что само решение проблемы после перезагрузки сильно влияет на мою уверенность, так как я не знаю, что привело к проблеме, мне нужно будет следить за ghost_record_count в моих ежедневных проверках состояния.