powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Расширение секций в таблице Oracle 10g
5 сообщений из 5, страница 1 из 1
Расширение секций в таблице Oracle 10g
    #39840944
menja_zovut_deniska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oracle 10g
Есть таблица
create table part_tab
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
(
  pt_id            NUMBER,
  pt_name          VARCHAR2(30),
  pt_date          DATE default SYSDATE,
  pt_lob           CLOB,
  pt_status        VARCHAR2(2)
)
partition by range (pt_date)
(
  partition PRT1 values less than (TO_DATE('2012-01-01', 'YYYY-MM-DD')),
  ...
  partition PRT2 values less than (TO_DATE('2014-09-01', 'YYYY-MM-DD')),
  partition PRT_MAX values less than (MAXVALUE)
  )



У таблицы есть PK на pt_id
Кроме уникального индекса для PK есть составной индекс на (pt_date(поле по которому строятся секции) и pt_name)
На этот PK смотрят несколько FK из других таблиц
Таблица очень толстая
Неообходимо добавить секции, которые будут лежать в другом ТП.
Для этого придется делить PRT_MAX.

Запись в таблицы будет отключена на момент деления

Первый раз делить будем на секцию с данными, которые останутся в текущем ТП и на новую секкцию без данных, которая будет уже в новом ТП

alter table part_tab split partition PRT_MAX at(TO_DATE('2019-08-01', 'YYYY-MM-DD')) into
(PARTITION PRT3 tablespace old_tablespace, PARTITION PRT_MAX tablespace new_tablespace);
Дальше мы поделим PRT_MAX в новом ТП и проблем с этим не должно быть

Вопросы
1. Учитывая, что данных в новой секции не будет. Можно ли провести деление секции без перестройки индексов.
На первый взгляд и проб они остаются валидными. Если нет, то какая правильная стратегия в этом случае
2. Что будет с клобами, записи которых впоследствии попадут в новую секцию? Они в каком ТП будет жить. Если в старом, то как правильно заставить их жить в новом
...
Рейтинг: 0 / 0
Расширение секций в таблице Oracle 10g
    #39841104
menja_zovut_deniska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточнение

Наверное для переноса новых лобов в другое ТП нужно будет изменить скрипт на так?

Код: plsql
1.
2.
alter table part_tab split partition PRT_MAX at(TO_DATE('2019-08-01', 'YYYY-MM-DD')) into 
(PARTITION PRT3 tablespace old_tablespace  LOB (pt_lob) store as (TABLESPACE old_tablespace), PARTITION PRT_MAX tablespace new_tablespace   LOB (pt_lob) store as (TABLESPACE new_tablespace));



Или не обязательно?

Ну и первый вопрос остается
...
Рейтинг: 0 / 0
Расширение секций в таблице Oracle 10g
    #39841143
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С учётом древности версии, придурок, назвавшийся дениской, чего ты хочешь от общественности? Сочувствия?
...
Рейтинг: 0 / 0
Расширение секций в таблице Oracle 10g
    #39841183
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это безотносительно версии (ну, точнее, именно фича FSP появилась в 9.2)

Optimizing SPLIT PARTITION and SPLIT SUBPARTITION Operations
Это называется "Fast split partition" и достаточно легко гуглится https://www.google.ru/search?client=opera&q=fast split partition oracle site:support.oracle.com

Ну и LOB-storage кляузу (или как она там называется) можно указывать не только в [под]команде SPLIT, но и MOVE (для пустой секции это тоже безопасно в плане инвалидации индексов)

PS. В этом случае для старой секции (которая не меняется) в команде SPLIT лучше не указывать атрибуты хранения
...
Рейтинг: 0 / 0
Расширение секций в таблице Oracle 10g
    #39841833
menja_zovut_deniska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровЭто безотносительно версии (ну, точнее, именно фича FSP появилась в 9.2)

Optimizing SPLIT PARTITION and SPLIT SUBPARTITION Operations
Это называется "Fast split partition" и достаточно легко гуглится https://www.google.ru/search?client=opera&q=fast split partition oracle site:support.oracle.com

Ну и LOB-storage кляузу (или как она там называется) можно указывать не только в [под]команде SPLIT, но и MOVE (для пустой секции это тоже безопасно в плане инвалидации индексов)

PS. В этом случае для старой секции (которая не меняется) в команде SPLIT лучше не указывать атрибуты хранения
Спасибо за ссылочку и поддержку.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Расширение секций в таблице Oracle 10g
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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