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

Откуда:
Сообщений: 10
Здравствуйте.

Вводные:
Есть таблица примерно с 50млн записями.
Занимает она примерно 4Gb

Пытаюсь удалить varchar2 столбец, от общего объема он занимает наверно 2Gb
В результате TableSpace UNDOTBS1 увеличивается до предела (20Gb) запрос выполняется бесконечно долго.
Вместе с запросом вешаются другие приложения, работающие на этой базе.

Работаю с ORACLE недавно. Подскажите, пожалуйста, какая нормальная практика удаления столбцов?
Знаю, можно пометить столбец, как неиспользуемый, еще есть вариант с пересозданием таблицы, и перезаписью всех данных.
Но хотелось бы понять, в чем кроется проблема.

Аналогичная ситуация возникает, когда добавляю в эту же таблицу столбец типа DATE со значением по умолчанию SYSDATE

Все индексы на данной таблице отключены, как и внешние ключи.
12 апр 12, 10:09    [12403738]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Ivan K
Member

Откуда: Москва
Сообщений: 304
Dikaaa,

Нормальная практика:
- выбрать часы наименьшей нагрузки
- остановить приложение
- выгнать из базы пользователей
- не забыть про задания по расписанию
- alter table ... drop column
12 апр 12, 11:20    [12404323]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Elic
Member

Откуда:
Сообщений: 29976
Dikaaa
4Gb. Пытаюсь удалить 2Gb
CTAS
12 апр 12, 11:33    [12404451]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Dikaaa
Знаю, можно пометить столбец, как неиспользуемый


О, сколько нам открытий чудных... ©

Поделитесь. Я не знаю такого способа.
12 апр 12, 11:39    [12404522]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Elic
Member

Откуда:
Сообщений: 29976
suPPLer
Поделитесь. Я не знаю такого способа.
RTFM drop_column_clause (FAQ)
12 апр 12, 11:43    [12404565]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Elic,

спасибо!
12 апр 12, 11:47    [12404609]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Dikaaa
Member

Откуда:
Сообщений: 10
Ivan K
Dikaaa,
Нормальная практика:
- выбрать часы наименьшей нагрузки
- остановить приложение
- выгнать из базы пользователей
- не забыть про задания по расписанию
- alter table ... drop column


Спасибо. Значит 'alter table ... drop column' в ORACLE нормальная практика для таблиц с данными.
Единственный момент - пункт:
- выгнать из базы пользователей
слабо выполним. Но приложение не сильно грузит сервер. Плюс никаким боком не использует обновляемую таблицу.

А есть какие-либо рекомендации по поводу TableSpace UNDOTBS1?
Какой размер выставлять, не ткнете носом в доки по принципам его работы?
Пока все сводится к тому, что из-за того, что он не увеличился, все и зависло.
12 апр 12, 15:04    [12406292]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Dikaaa
Плюс никаким боком не использует обновляемую таблицу.

Тогда чем не устраивает совет Элика?
12 апр 12, 15:07    [12406319]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Dikaaa
Member

Откуда:
Сообщений: 10
Elic
Dikaaa
4Gb. Пытаюсь удалить 2Gb
CTAS

Простите, это что за аббревиатура?
Кроме как
"Condition Temperature Automotive Sensor"
И STAS Михайлов ничего не нагуглил :)
12 апр 12, 15:08    [12406333]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Elic
Member

Откуда:
Сообщений: 29976
Dikaaa
ничего не нагуглил :)
STFF
12 апр 12, 15:14    [12406369]     Ответить | Цитировать Сообщить модератору
 Re: Не удаляется столбец  [new]
Dikaaa
Member

Откуда:
Сообщений: 10
Elic
STFF

Ага, понял. Спасибо.
12 апр 12, 15:22    [12406444]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить