Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Delete old date, partitioned tables, indexes, execution time. / 7 сообщений из 7, страница 1 из 1
02.08.2016, 14:25:51
    #39284590
JaBong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
Здравствуйте!
Появилась задаа по удалению большого числа строк из партицированной таблицы. Хочется услышать советы и рекомендации от бывалых.
В ней имеется чуть больше 52 миллионов записей, около половины записей старых надо удалить.
Может быть кто подскажет, какие могу быть подводные камни?
Вижу так, удаляю это дело небольшими порциями, например по паре миллионов записей с последующим коммитом.
Код: plsql
1.
2.
3.
4.
5.
DELETE FROM megateable WHERE year = '2014' and month='01';
commit;
DELETE FROM megateable WHERE year = '2014' and month='02';
commit;
и т.д.


Так же есть индекс. Который, видимо, надо будет отребилдить:
Код: plsql
1.
ALTER INDEX megateable _IDX REBUILD ONLINE COMPUTE STATISTICS;



Где могу проколоться в этом плане? Что планирую не так?
Как можно оценить время выполнения данных команд? Есть методы?
...
Рейтинг: 0 / 0
02.08.2016, 14:27:20
    #39284594
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
JaBong,

А че не drop partition?
...
Рейтинг: 0 / 0
02.08.2016, 14:41:24
    #39284613
_S_T_O_N_E_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
JaBong[/src]
Так же есть индекс. Который, видимо, надо будет отребилдить:
Код: plsql
1.
ALTER INDEX megateable _IDX REBUILD ONLINE COMPUTE STATISTICS;




Если индекс локальный, то и ребилдить не надо.
...
Рейтинг: 0 / 0
02.08.2016, 14:44:23
    #39284615
JaBong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
В таблицу пишется время когда было добавлена запись, собственно, имеем 13 партиций разделённые по времени добавления данных:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
INSP_HOUR_P1	'02'
INSP_HOUR_P2	'04'
INSP_HOUR_P3	'06'
INSP_HOUR_P4	'08'
INSP_HOUR_P5	'10'
INSP_HOUR_P6	'12'
INSP_HOUR_P7	'14'
INSP_HOUR_P8	'16'
INSP_HOUR_P9	'18'
INSP_HOUR_P10	'20'
INSP_HOUR_P11	'22'
INSP_HOUR_P12	'24'
INSP_HOUR_P13	MAXVALUE


А данные нужно удалить старше двух лет.
...
Рейтинг: 0 / 0
02.08.2016, 14:48:41
    #39284620
JaBong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
_S_T_O_N_E_Если индекс локальный, то и ребилдить не надо.
Код: plsql
1.
select index_name, locality from all_part_indexes

говорит, что locality у него "LOCAL"
...
Рейтинг: 0 / 0
02.08.2016, 14:54:58
    #39284630
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
Прикольно кто-то секции нарезал

Если есть возможность обеспечить технологическое окно -- проще перелить в новую таблицу (CTAS) и лучше, наверное, таки секции порезать по другому.

Если будет именно удаляться (DELETE) около половины записей (из всех секций, если правильно понял), то, скорее всего, есть смысл перестроить все индексы
...
Рейтинг: 0 / 0
03.08.2016, 08:58:58
    #39285081
JaBong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete old date, partitioned tables, indexes, execution time.
Спасибо за советы, но тех окна не предвидится ближайшее время.
А перестроить индексы можно сразу после удаления? или нужно пересобрать статистику?
И насколько можно упираться на результат "explain plan for" ?

Могут ли индексы не перестроиться при секционировании?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Delete old date, partitioned tables, indexes, execution time. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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