Before you buy anything (before you make any capital expenditure), do some more digging. Explain plan
is like a weather forecast. It may collapse in the face of reality.
There are a few things you can do, while the offending query is running.
(1) log into the server machine and monitor the use of CPU cycles and disk io. In Linux the command sar -u 1 120
will give you two minutes' worth of cpu %idle data. If you have no idle cpu, then your query is overusing computational cycles. Similarly sar -d 1 120
will tell you whether your disk IO is saturated. Microsoft's perfmon and Windows Task Manager will tell you the same things if that's where your Oracle instance is hosted.
(2) use the Oracle Enterprise Manager console. Log in to the data base, look at the session list, and take a look at various cpu-intensive sessions. The enterprise manager can show you what queries are running, and what exact execution plans they are using. They also can tell you if they're doing something super time consuming like full-scanning a huge table.
Take a detailed look at the explain plan
output. It may show you a full table scan, or some other nasty performance hit, that suggests a solution like adding an index.