Как насчет добавления той же триггерной функции, которая запускается после любого действия CRUD, во все таблицы.
Функция получит имя таблицы, проверит состояние таблицы, а затем запустит вакуум или переиндексирование этой таблицы.
Должен быть "простой" триггер pl / sql, но тогда он никогда не бывает простым ...
Кроме того, если ваша машина БД достаточно сильная, а время простоя достаточно продолжительное, просто запускайте сценарий каждую ночь, чтобы переиндексировать все это, и очистить все это ... таким образом, даже если ваши критерии не были выполнены во время тестирования ( ночь), но он был близок к нему (на несколько записей меньше, чем ваши критерии), но на следующий день, когда он достигнет критериев, это не создаст проблемы ...