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

Откуда:
Сообщений: 28
Привет, вопрос чисто теоретический, если сделать секционирование на столбец date, который постоянно меняется (допустим время последнего изменения этой записи), насколько это будет неправильное решение и почему?
16 окт 19, 15:16    [21995618]     Ответить | Цитировать Сообщить модератору
 Re: Секционирование на динамические столбцы  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Потому что запись будет физически перемещаться между секциями при изменении поля секционирования.
Сразу идет лесом, например, вывод в Read Only старых секций
16 окт 19, 15:44    [21995657]     Ответить | Цитировать Сообщить модератору
 Re: Секционирование на динамические столбцы  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
rost.slv
насколько это будет неправильное решение и почему?


Решение чего? Cекционирование это инструмент а не задача.

SY.
16 окт 19, 16:25    [21995709]     Ответить | Цитировать Сообщить модератору
 Re: Секционирование на динамические столбцы  [new]
Valergrad
Member

Откуда:
Сообщений: 704
Вячеслав Любомудров
Потому что запись будет физически перемещаться между секциями при изменении поля секционирования.
Сразу идет лесом, например, вывод в Read Only старых секций


Не все так страшно. Мы так делали для дименшена по полю coalesce(время последнего апдейта, 2099 год). Тогда последние версии данных все лежат в одной партиции и их удобно селектить. Да, каждая строка перемещается при апдейте ( когда пришла новая версия дименшена и мы апдейтим время закрытия старой) в другую партицию, но только один раз. И делать read only старых секции тоже при таком подходе возможно.
17 окт 19, 18:02    [21996824]     Ответить | Цитировать Сообщить модератору
 Re: Секционирование на динамические столбцы  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18373
Valergrad
пришла новая версия дименшена и мы апдейтим время закрытия старой) в другую партицию, но только один раз.

Я поступал иначе: делал insert select старой версии с закрытием, а оригинал update-ил на новую версию.
Этот подход выбрасывает из схемы построения SCD2 delete, так как не задействует rowmovement.
17 окт 19, 18:06    [21996828]     Ответить | Цитировать Сообщить модератору
 Re: Секционирование на динамические столбцы  [new]
Valergrad
Member

Откуда:
Сообщений: 704
andrey_anonymous
Valergrad
пришла новая версия дименшена и мы апдейтим время закрытия старой) в другую партицию, но только один раз.

Я поступал иначе: делал insert select старой версии с закрытием, а оригинал update-ил на новую версию.
Этот подход выбрасывает из схемы построения SCD2 delete, так как не задействует rowmovement.


При этом подходе нужно быть уверенным что после апдейта строка будет занимать примерно столько же места сколько и старая. Иначе столкнешься либо с неээфективным использованием места, либо с row chaining.
17 окт 19, 18:14    [21996838]     Ответить | Цитировать Сообщить модератору
 Re: Секционирование на динамические столбцы  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18373
Valergrad
При этом подходе нужно быть уверенным что после апдейта строка будет занимать примерно столько же места сколько и старая. Иначе столкнешься либо с неээфективным использованием места, либо с row chaining.

Ну обычно приблизительно так и бывает в SCD.
На крайняк PCTFREE можно подприподнять.
Вариант же с rowmovement не только дает +одну операцию(delete) с ее undo+redo, но и оставляет "дырку" в блоке, т.е. wast-ит дисковые гектары.
17 окт 19, 18:22    [21996847]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить