У меня секционированная таблицы «Аварийные сигналы», как следующиеУдаление некоторых данных из раздела повлияет на локальный индекс?
- разделенный по диапазону (вариант); версия: 1,2,3 ..
- каждый раздел имеет локальный индекс по версии
- каждого раздела имеет сочетание столбцов в качестве локальных индексов
- версии локального индекса
- Ни один глобального индекса
из-за некоторые бизнес-ограничения,
- Мне нужно удалить некоторые данные из каждой версии (но не весь раздел данных).
- обновление не будет происходить со старыми версиями, только выбрать
- на ежедневной основе, я вставляя новые данные версии
Так для этого я буду удалять следующим образом:
delete /*+ full(alarms) parallel(alarms,4)*/ from alarms where version <= (number) and alarm_type = 'type1';
И это не удалит весь раздел. Но может быть каждый месяц, этот раздел будет пустым.
Итак, у меня есть процедуры для всех версий, и все пустые разделы будут удалены по имени.
Мой вопрос: До раздела не является пустым
- это может повлиять на производительность?
- Нужно ли мне перестроить индекс, каждый из них удаляет?
Спасибо, Боб! для первой точки, что я имел в виду, это производительность операций dml, специально выбирая данные из разбитого раздела. и в случае удаления некоторых других данных из того же раздела .. и так далее. Во-вторых, ваш ответ на этот вопрос! –
Я думаю, что также сбор статистики для этой таблицы может помочь на ежедневной основе, так как будет создана новая версия (раздел), и старые разделы могут обновляться/удаляться ежедневно –
. Вы должны регулярно собирать статистику на любой таблице, которая имеет значительные изменения к нему. –