Usuwanie danych to piekielna robota dla bazy danych. Musi tworzyć obrazy przed, aktualizować indeksy, pisać logi przeróbek i usuwać dane. To powolny proces. Jeśli możesz mieć okno do wykonania tego zadania, najłatwiej i najszybciej jest zbudowanie nowych tabel, zawierających żądane dane. Usuń stare tabele i zmień nazwy nowych tabel. Wymaga to trochę pracy konfiguracyjnej, co jest oczywiste, ale jest bardzo możliwe do wykonania. Jednym krokiem mniej drastycznym jest usunięcie indeksów przed usunięciem. Mój głos poszedłby na CTAS (Create Table As Select from) i zbudował nowe tabele. Ładny schemat partycjonowania z pewnością byłby pomocny, być może w następnej wersji Oracle może połączyć partycjonowanie interwałowe i referencyjne. Byłoby bardzo miło.
Wyłączenie rejestrowania .... nie może być wykonane w przypadku usuwania, ale CTAS może używać nologgingu. Zrób kopię zapasową, gdy będziesz gotowy, i przenieś pliki danych do rezerwowej bazy danych, jeśli taką posiadasz.