CftClub.ru
Клуб специалистов ЦФТ-Банк

Партиционирование z#ows_transaction.

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Oracle DBA
Предыдущая тема :: Следующая тема  
Автор Сообщение
Taniani
Участник
Неподтвержденный


Вступление в Клуб: 08.11.2012
СообщениеПт Июн 29, 2018 14:07   Партиционирование z#ows_transaction. Ответить с цитатой
Полезность: 1
Добрый день!

Столкнулись с проблемой при партционировании z#ows_transaction. Проводили ссылочное партиционирование(на z#ip_transaction). После него было улучшения во времени запроса но, появились проблемы с таблицей Z#IP_HOLD, связанной с z#ows_transaction, через foreign key.
Что происходит: идет insert в z#ows_transaction, получаем id записи. и далее с id идет insert в Z#IP_HOLD. И падает с ошибкой:

Ошибка вызова интерфейса, откат обработки: ORA-01555: слишком старый снимок: сегмент отката номер 297 по имени "_SYSSMU297_484540920$" слишком мал

Если отключить ключ - ошибки нет. Пересоздавали и ключи и индексы.

может кто-нибудь сталкивался? Скриптов партиционирования нет. Все что знаю что оно ссылочное....
kai
Профи
<Центр Финансовых Технологий>


Вступление в Клуб: 16.08.2012
СообщениеВт Сен 04, 2018 09:01   Re: Партиционирование z#ows_transaction. Ответить с цитатой
Полезность: Нет оценки
Taniani пишет:
Столкнулись с проблемой при партционировании z#ows_transaction. Проводили ссылочное партиционирование(на z#ip_transaction). После него было улучшения во времени запроса но, появились проблемы с таблицей Z#IP_HOLD, связанной с z#ows_transaction, через foreign key.


1. В общем случае нельзя проводить секционирование таблиц ТБП - тем самым изменять только словарь Oracle без внесения изменений в словарь ТЯ. Как минимум из-за констрейнтов. (Только на свой страх и риск - есть пример секционирования таблицы CARD_REE_FIELDS).
2. Подробности о секционировании F1 в "Администраторе словаря данных" (поиск по слову "секционирование"), в ТЯ Doc\partitions.doc.
3. ТЯ констрейнты меняет на триггеры.
4. Для пакетного преобразования таблиц из простой в секционированную с минимальным временем простоя есть приложение "Менеджер жизненного цикла данных" (ADM.BATCH.ARC)

http://catalog.cft.ru/platform/SitePages/Apps.aspx?view=bn#/bn:1/s:3

p.s. По приложению вопросы можно задавать мне.

вот, кстати, могу привести текст из переписки со специалистами Oracle:

Цитата:
Простое секционирование по дате, из-за особенностей логики работы прикладного ПО "ЦФТ-Банк", приведёт к неэффективной схеме секционирования. Проблема связана с тем, что при формировании записи в транзакционных таблицах, некоторые поля (неосновные атрибуты) не заполняются сразу при создании записи. Поле "Дата" относится именно к таким атрибутам. Заполнение даты производится уже потом – в ходе прохождения жизненного цикла соответствующего бизнес-объекта системы. Такова специфика работы приложения "ЦФТ-Банк".

Все вышеперечисленное означает, что первоначально, все такие записи (с пустой датой) попадут в секцию по умолчанию (default maxvalue). В дальнейшем, при установке значения в это поле, – произойдёт смена ключа секционирования, что крайне не рекомендуется.

Другая проблема связана с индексами – для того, чтобы индекс был локальным то есть повторял схему секционирования самой таблицы, в него должен входить ключ секционирования. Это означает, что нельзя будет использовать пустое значение (NULL) для такого индекса – придётся все индексы делать глобальными. В этом случае все операции над таблицей будут приводить к необходимости перестройки глобальных индексов – приложение в этот момент будет практически неработоспособно.

Для решения задачи секционирования таблиц и индексов разработчиками компании "ЦФТ" была разработана и протестирована соответствующая методика. Она заключается в том, что в прикладные таблицы "ЦФТ-Банк" добавляется дополнительное поле-ключ секционирования. Далее исходный код приложения модифицируется, чтобы обращения происходили только к актуальным данным. В дальнейшем происходит плавное (не останавливающее работу приложения!), перемещение данных из активной секции в архивную с перестроением локальных индексов.

Мы считаем, что банкам следует ориентироваться на методику секционирования, предложенную разработчиками компании "ЦФТ", поскольку она учитывает все риски и предлагает проверенное решение.


Best Regards
Igor Melnikov
Oracle CIS

ноябрь 2016г.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Oracle DBA Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru