One (or both) of two things will cause your slow down:
1) the insert
2) the query
You can test the query is isolation by just output the "view_sql" and running some samples in SQL Plus.
A good technique is to use the gather_plan_statistics hint to assess where the slow down is. A example of that here
https://asktom.oracle.com/pls/asktom/asktom.search?tag=what-is-efficient-way-to-paginate-on-the-large-table If the query is fast and the insert is slow, then throw a trace on via dbms_monitor.session_trace_enable (waits=>true) or look at the session wait statistics via v$session_event to see where the insert is being hampered. Common causes are
- triggers on the table
- lots of indexes on the table