Find what's actually slow
Before tuning anything, rank statements by total elapsed time — not by execution count. The worst query is rarely the most frequent one.
-- Top 10 statements by total elapsed time SELECT sql_id, ROUND(elapsed_time/1e6, 2) AS elapsed_s, executions, ROUND(elapsed_time/NULLIF(executions,0)/1e6, 4) AS per_exec_s FROM v$sql WHERE parsing_schema_name NOT IN ('SYS', 'SYSTEM') ORDER BY elapsed_time DESC FETCH FIRST 10 ROWS ONLY;