Соображения при отбрасывании столбцов в больших таблицах

У меня есть таблица данных вызовов, которая выросла до 1,3 миллиарда строк и 173 гигабайта данных. Есть два столбца, которые мы больше не используем, один - char (15), другой - varchar (24). В течение некоторого времени они оба вставлялись с NULL, я откладывал удаление столбцов, потому что не уверен в последствиях. У нас есть ограниченное пространство как на диске с базой данных, так и на диске с журналом транзакций.

Кроме того, я нашел этот пост , в котором говорится, что пространство не будет доступно до тех пор, пока не будет выполнена команда DBCC REINDEX. Я вижу в этом и хорошее, и плохое. Это хорошо, потому что удаление столбцов должно быть очень быстрым и не требовать большого количества журналов, но плохо, потому что пространство не будет восстановлено. Но будут ли вновь вставленные записи занимать меньше места? В моем случае это было бы хорошо, поскольку мы удаляем старые данные через 18 месяцев, чтобы пространство постепенно уменьшалось.

Если бы мы выполнили DBCC REINDEX (или ALTER INDEX REBUILD), действительно ли это помогло бы, поскольку столбцы не являются частью какого-либо индекса? Это займет место в журнале или заблокирует таблицу, чтобы ее нельзя было использовать?

9
задан Jason Goemaat 23 February 2011 в 00:26
поделиться