Thanks Guys, we have played with the db_file_multiblock_read_count, altering this does not improve performance. The OS limit is 64K, the db_BLOCK_SIZE is 8k so setting the db_file_multiblock_read_count to 8 is the optimal setting. Any value above this causes a degfradation in performance. With regards to indexes, the data growth has caused the optimizer to choose a full table scan. The issue refers to a reporting instance where redo logs are applied from a production instance. The indexes were developed to maximise performance against the production instance (which is already huge) but the queries against the reporting instance are different in their construct and therefore tend not to use the indexes. We have investigated lots of areas, most init.ora parameters and materialised views, nothing improves performance. The tables are not partitioned so I cannot get any major performance benefit from parallel queries, could anyone point me in a direction with regards to setting up efficient parallel queries with non-paritioned tables, we are also unable to insert a parallel hint in the SQL due to third party software configuration of the queries.