powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Delete old date, partitioned tables, indexes, execution time.
7 сообщений из 7, страница 1 из 1
Delete old date, partitioned tables, indexes, execution time.
    #39284590
JaBong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Появилась задаа по удалению большого числа строк из партицированной таблицы. Хочется услышать советы и рекомендации от бывалых.
В ней имеется чуть больше 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
Delete old date, partitioned tables, indexes, execution time.
    #39284594
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaBong,

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




Если индекс локальный, то и ребилдить не надо.
...
Рейтинг: 0 / 0
Delete old date, partitioned tables, indexes, execution time.
    #39284615
JaBong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблицу пишется время когда было добавлена запись, собственно, имеем 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
Delete old date, partitioned tables, indexes, execution time.
    #39284620
JaBong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_S_T_O_N_E_Если индекс локальный, то и ребилдить не надо.
Код: plsql
1.
select index_name, locality from all_part_indexes

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

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

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

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


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