Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Изменение значений столбца / 16 сообщений из 16, страница 1 из 1
08.06.2018, 12:43
    #39658264
gr_alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Здравствуйте.
Какие есть способы максимально быстро изменить значения столбца в таблице из нескольких сот миллионов записей?
...
Рейтинг: 0 / 0
08.06.2018, 12:48
    #39658272
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Зависит от.
...
Рейтинг: 0 / 0
08.06.2018, 13:05
    #39658304
шК0ДЕР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
gr_alexЗдравствуйте.
Какие есть способы максимально быстро изменить значения столбца в таблице из нескольких сот миллионов записей?Определенно
Код: plsql
1.
UPDATE
...
Рейтинг: 0 / 0
08.06.2018, 13:08
    #39658305
gr_alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
шК0ДЕРgr_alexЗдравствуйте.
Какие есть способы максимально быстро изменить значения столбца в таблице из нескольких сот миллионов записей?Определенно
Код: plsql
1.
UPDATE



слишком долго
...
Рейтинг: 0 / 0
08.06.2018, 13:13
    #39658309
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
gr_alex,

промежуточный столбец:
1) добавили новый столбец,
2) не торопясь проапдейтили как надо
3) махнули столбцы местами.

Ну или заморочиться по взрослому и сделать через dbms_redefinition с трансформацией данных...
...
Рейтинг: 0 / 0
08.06.2018, 14:40
    #39658396
alwan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Код: sql
1.
2.
3.
4.
5.
alter table TAB rename to TAB_OLD;
create table TAB as select * from TAB_OLD where 1=0;
alter session enable parallel dml;
insert /*+ append parallel */ into TAB select col1, col2, 'value', col4 from TAB_OLD;
commit;
...
Рейтинг: 0 / 0
08.06.2018, 14:45
    #39658401
alwan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
alwan
Код: sql
1.
2.
3.
4.
5.
alter table TAB rename to TAB_OLD;
create table TAB as select * from TAB_OLD where 1=0;
alter session enable parallel dml;
insert /*+ append parallel */ into TAB select col1, col2, 'value', col4 from TAB_OLD;
commit;



Если, конечно, есть возможность недоступности данных.
Чтобы минимизировать, можно синоним создать.
...
Рейтинг: 0 / 0
08.06.2018, 14:52
    #39658407
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Щукина Аннаgr_alex,

2) не торопясь проапдейтили как надо


Ну-ну, а исходный столбец типа статичный?

SY.
...
Рейтинг: 0 / 0
08.06.2018, 14:55
    #39658411
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Да уж, мы не ищем легких путей

Построить вьюшку с подменой значения (возможно с соответствующими триггерами)
А тем временем потихоньку менять значения в базовой таблице
...
Рейтинг: 0 / 0
08.06.2018, 15:52
    #39658463
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Единственно полезная информация была дана первым же ответом, все остальные пытаются подрочить ТС даже не пытаясь понять, что он любит, мужчину, женщину или лошадку там...
...
Рейтинг: 0 / 0
08.06.2018, 16:03
    #39658470
alwan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
AlexFF__|,

В первом ответе "полезная информация" отсутствовала.
А в остальных ответах были приведены способы для различных ситуаций, раз уж автор не описал свою подробнее. Вопрос не из тех, по которым возникает желание добиться подробностей и в конце концов выбрать нужный способ. А автор, думаю, в состоянии из предложенного выбрать подходящий.
...
Рейтинг: 0 / 0
08.06.2018, 16:09
    #39658475
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
alwanраз уж автор не описал свою подробнее.Но все кинулись метать бисер...
...
Рейтинг: 0 / 0
08.06.2018, 17:24
    #39658519
gr_alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
alwan
Код: sql
1.
2.
3.
4.
5.
alter table TAB rename to TAB_OLD;
create table TAB as select * from TAB_OLD where 1=0;
alter session enable parallel dml;
insert /*+ append parallel */ into TAB select col1, col2, 'value', col4 from TAB_OLD;
commit;



Спасибо помогло.
...
Рейтинг: 0 / 0
08.06.2018, 17:51
    #39658531
merch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
gr_alex Спасибо помогло.

не забудь constraints и indexes перетащить.
...
Рейтинг: 0 / 0
09.06.2018, 07:22
    #39658671
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
gr_alexalwan
Код: sql
1.
2.
3.
4.
5.
alter table TAB rename to TAB_OLD;
create table TAB as select * from TAB_OLD where 1=0;
alter session enable parallel dml;
insert /*+ append parallel */ into TAB select col1, col2, 'value', col4 from TAB_OLD;
commit;

Спасибо помогло.RTFM CREATE TABLE ... AS SELECT in Parallel (FAQ)
...
Рейтинг: 0 / 0
09.06.2018, 11:29
    #39658785
alwan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение значений столбца
Elicgr_alexпропущено...
Спасибо помогло.RTFM CREATE TABLE ... AS SELECT in Parallel (FAQ)

Тестировал на разных окружениях, insert быстрее. Плюс при CTAS менее удобно контролировать процесс, рост сегмента.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Изменение значений столбца / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]