SQL Server 2008 - добавлен один столбец и теперь отсутствует куча дискового хранилища - PullRequest
0 голосов
/ 11 декабря 2018

Я случайный администратор баз данных, поэтому я все еще учусь.Я не из ИТ-среды, поэтому метаданные / то, как SQL Server влияет на диски, систему, ОС и т. Д., - это то, о чём я горько не осведомлен (примечание: если у вас есть какие-либо хорошие учебники для начинающих, я весь в ушах)).

Управляемый мной экземпляр - это SQL Server 2008R2 с около 130 БД.Подавляющее большинство имеют ту же структуру таблиц, что и эти БД, используемые для приложения, на которое подписываются клиенты.

Разработчики указанного приложения добавили столбец в таблицу аудита.Эта таблица записывает большую (но не всю) активность в приложении;поэтому таблица может быть довольно большой.В настоящее время в этих таблицах по всему экземпляру находится 275 476 273 строки.Столбец представляет собой числовой тип (3,0) со значением по умолчанию, равным 0. Если я правильно понимаю, что я правильно читаю, столбец MOST, который столбец будет принимать на запись, составляет 19 байтов, что означает ~ 5 ГБ.Похоже, много, но хорошо.

Проблема в том, что за выходные (в те же выходные, когда выполнялась эта задача, и, следовательно, почему она находится под пристальным вниманием), 30 Гб на этом сервере исчезли.Я обрезал журналы и файлы данных (только что освободил свободное пространство, фактически не реорганизовывая и т. Д.), Но мы, похоже, не возвращаем это хранилище обратно.Я понимаю, что это освободит место только в конце файла, но мне все еще трудно поверить, что 25 ГБ выделенного пространства просто находятся в файлах, ожидающих использования, потому что был добавлен один столбец.

Что происходит?Не похоже, что индексы используют этот столбец.

Спасибо!

Редактировать: чтобы быть более точным в отношении добавляемого столбца: при добавлении столбца операция проверяла, существует ли он;если это так, ничего не делайте, если нет, добавьте столбец.столбец был задан как столбец NULLABLE, но со значением по умолчанию 0. Итак, когда столбец был добавлен, все значения NULL были обновлены до 0. Не уверен, что это ключ, здесь.

Кроме того, индексы дляэта таблица, кажется, не так сильно фрагментирована.Думаю, мы говорим не более чем на 15%.

...