If you have an Enterprise Edition license, the easiest way to achieve this is to query in parallel.
For one-time or special requests, use the PARALLEL hint:
select * from your_table /
The number in the prompt is the number of slave queries you want to complete; in this case, the database will start four threads.
If you want each query issued in a table to be parallelized, permanently change the definition of the table:
alter table your_table parallel (degree 4) /
Note that the database will not always use a parallel query; the optimizer will decide if this is appropriate. A parallel query only works with a full table scan or a scan of index ranges that cross several sections.
There are a number of caveats. A parallel request requires a sufficient number of cores to satisfy the proposed number of threads; if we have only one dual-core processor, a parallel power of 16 will not magically speed up the request. In addition, we need spare processor power; if the server is already connected to the CPU, then parallel execution will only worsen the situation. Finally, the I / O and storage subsystems must be able to satisfy a simultaneous need; SANs may be worthless here.
As always with regard to performance, it is extremely important to conduct some benchmarking against realistic amounts of data in a representative environment before going into production.
What if you do not have an Enterprise Edition? Well, you can simulate parallel execution manually. Tom Keith calls it "Do-It-Yourself Parallelism". I used this technique myself and it works well.
The main thing is to work out the full range of ROWIDs that apply to the table and divide them into several tasks. Unlike some other solutions offered in this thread, each task selects only the rows it needs. Mr. Kite summarized this technique in the old AskTom branch, including the vital split script: find it here .
Splitting a table and starting threads is a manual task: thin as a one-time, but rather tedious to spend often. Therefore, if you are using 11g release 2, you should know that there is a new PL / SQL package DBMS_PARALLEL_EXECUTE that automates this for us.