Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удаление колонки с типом Image  [new]
new dev
Member

Откуда:
Сообщений: 36
Добрый день.

После экспорта файлов из бд в файловую систему (порядка 70 Гб в целом) встала задача удалить колонку с типом Image, в которой, собственно, и хранились файлы. Пока вижу наиболее оптимальный вариант это выгрузить нужные данные из основной таблицы в темповую, за исключением колонки с Image -> сделать truncate основной таблицы -> удалить колонку c типом Image в основной таблице -> перелить данные из темповой таблицы в основную -> выполнить shrink database.

Может есть еще варианты, сравнимые по скорости или быстрее?
8 июл 11, 13:13    [10945068]     Ответить | Цитировать Сообщить модератору
 Re: Удаление колонки с типом Image  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
А что, ALTER TABLE ... DROP COLUMN ... не подходит?
8 июл 11, 13:48    [10945383]     Ответить | Цитировать Сообщить модератору
 Re: Удаление колонки с типом Image  [new]
new dev
Member

Откуда:
Сообщений: 36
Пробовал DROP COLUMN. Но физически размер таблицы не изменился и shrink database показывает что нет свободного места на в файле бд, ни в файле лога.
8 июл 11, 14:02    [10945508]     Ответить | Цитировать Сообщить модератору
 Re: Удаление колонки с типом Image  [new]
egaraev
Member

Откуда:
Сообщений: 63
А если сделать шринк с переносом данных, осовобождается место?
8 июл 11, 14:07    [10945569]     Ответить | Цитировать Сообщить модератору
 Re: Удаление колонки с типом Image  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
new dev,

И с какими параметрами Вы запускали SHRINK?
8 июл 11, 14:15    [10945658]     Ответить | Цитировать Сообщить модератору
 Re: Удаление колонки с типом Image  [new]
new dev
Member

Откуда:
Сообщений: 36
egaraev,

Да, truncate -> shrink освобождает место. В описанной схеме основное время занимает shrink.

Еще вариант использовать DBCC CLEANTABLE в связке с DROP COLUMN. Тогда последовательность действий сокращается до DROP COLUMN -> DBCC CLEANTABLE -> SHRINK DATABASE. Вроде наиболее оптимальный вариант. Думаю остановлюсь на нем.
8 июл 11, 14:22    [10945755]     Ответить | Цитировать Сообщить модератору
 Re: Удаление колонки с типом Image  [new]
new dev
Member

Откуда:
Сообщений: 36
pkarklin,

Я по умолчанию из Management Studio пробовал
8 июл 11, 14:26    [10945786]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить