Версия Oracle 12.1.0.2.170117.
Входные данные: сессии находятся в ожидании latch: row cache objects, раздел dc_rollback_segments, что очень замедляет работу базы данных. dc_rollback_segments легко виден в AWR за проблемный период в разделе Dictionary Cache Stats.


При таких входных данных, на MOS десятки багов, которые исправлены в 12.1.0.2, а то и в 11.2 или ещё раньше.
Собираем информацию далее.
Смотрим в v$undostat.tuned_undoretention, затюненое retention плавно добралось до 90000 сек, поднимали это значение два запроса, время выполнения которых было гораздо, гораздо ниже 90000сек.
Далее смотри dba_undo_extents.status, и выясняется, что почти все экстенты UNEXPIRED, очень мало ACTIVE, и почти нет EXPIRED.
И того имеем:
undo_retention=20000 в файле параметров(spfile).
Затюненое tuned_undoretention=90000
Свободных undo экстентов нет.
Проверяем новые данные на MOS, в уме держим мысль: “как уменьшить tuned_undoretention?”. И находим, очень похожий баг, который исправлен в 11.2.0.1,10.2.0.5 и т.д, про 12.1 ни слова.
Bug 7291739 — Contention with auto-tuned undo retention or high TUNED_UNDORETENTION (Doc ID 7291739.8)
В качестве решения проблемы, включаем два скрытых параметра, первый, отключение undo автотюненга, второй выставление наивысшего порога undoretention.