powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Изменение типа данных поля с Timestamp with local time zone на timestamp
6 сообщений из 6, страница 1 из 1
Изменение типа данных поля с Timestamp with local time zone на timestamp
    #39930713
Danian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Столкнулся со следующей проблемой.. есть несколько крупных таблиц в базе, имеющих поля типа timestamp with local time zone, но возникла необходимость избавиться от «local time zone». Первый план действий, который пришёл на ум: временно переименовать старую колонку, создать новую с нужным типом, заапдейтить всю таблицу, удалить старую колонку и восстановить все ограничения и индексы. В таком подходе не радует, как минимум, скорость - необходимо будет обновить на горячую(время допустимого простоя не более 3-х часов в сутки в специально отведённое время) по несколько десятков миллиардов записей в нескольких из таблиц.. всвязи с этим, ищем советов, какими ещё способами можно перевести тип колонки из TSwLTZ в простой timestamp с максимальной скоростью, минимальной потерей доступности и минимальным ущербом для индексов и ключей?
И ещё один вопрос, почему нельзя изменить тип колонки через modify сразу из TSwLTZ в простой timestamp, но можно TSwLTZ -> Date -> timestamp ?
Будем очень признательны и благодарны за любые дельные советы и пинки в нужную сторону!
...
Рейтинг: 0 / 0
Изменение типа данных поля с Timestamp with local time zone на timestamp
    #39930720
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Danian,

Возможно будет проще пересоздать структуры таблиц уже с нужным типом, в рабочее время в фоне залить все записи, в окно залочить основные таблицы, долить дельту и переименовать таблицы/ключи/индексы
...
Рейтинг: 0 / 0
Изменение типа данных поля с Timestamp with local time zone на timestamp
    #39930887
KoTTT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_redefinition
...
Рейтинг: 0 / 0
Изменение типа данных поля с Timestamp with local time zone на timestamp
    #39930890
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danian
...избавиться от «local time zone». ... удалить старую колонку ...
invisible или set unused позволит избавиться почти online.
...
Рейтинг: 0 / 0
Изменение типа данных поля с Timestamp with local time zone на timestamp
    #39931104
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KoTTT
dbms_redefinition

На миллиардных-то таблицах...
Но если вдруг - то не следует выполнять redefinition без PK, потому как by rowid добавляет в целевую таблицу скрытое поле (c rowid источника), которое, с одной стороны, не так просто вытравить, с другой - оно мешает выполнять exchange partition
...
Рейтинг: 0 / 0
Изменение типа данных поля с Timestamp with local time zone на timestamp
    #39931105
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Danian
...избавиться от «local time zone». ... удалить старую колонку ...
invisible или set unused позволит избавиться почти online.

Но не избавиться, к сожалению.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Изменение типа данных поля с Timestamp with local time zone на timestamp
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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