+1 к «попробовать имеющиеся у оракла средства оптимизации»:
— в приложении не создавать / дестроить коннект каждый раз а держать его постоянным, препейрить запросы, переменные биндить
— запустить AWR в модной веб-консольке Oracle Enterprise Manager, посмотреть что найдет
— поднять SGA, увеличить буффер кеш
— убедиться что соблюдены элементарные правила разделения датафайлов, редулогов, архивлогов по дискам и нет даунгрейда со стороны дисковой подсистемы, системных и оракловых джобов
— собрать статистику, посмотреть на фрагментацию (chained rows), помониторить сами запросы, посмотреть планы -> возможно что-то еще можно разогнать
— материализовать тяжелые запросики, из наиболее частоджоинящихся табличек сделать кластеры
Мне представляется, если у вас есть некий дополнительный свободный ресурс (ram, cpu) которое вы собираетесь отдать стороннему кеширующему решению, может сначала попытаться добавить тот же ресурс серверу бд + немного тюнинга?
Я просто боюсь, что любая самопальная схема инвалидации кеша, живущая на триггерах on every row будет создавать больше задержек -> несогласованность данных при чтении из кеша