db file sequential read wait event and Insert performance

From: Harvinder Singh <Harvinder.Singh_at_MetraTech.com>
Date: Thu, 28 Feb 2008 11:38:43 -0500
Message-ID: <D6424CD4C8A3C044BBC49877ED51C51804E02C06@ex2003.metratech.com>


We are doing a benchmark testing of the application and currently focus on area where we insert about 12M rows in 1 table in 1 batch and commit every 50k rows, Inserts are done by application using OCI calls. When we started and tables were empty the batch was taking about 6:30 min and now with tables having 200M rows the batch is taking about 30 min (5 times more).

Following is the configuration

Oracle, 2 node RAC cluster on Linux AS. Each node has 8 CPU's and 32GB RAM and db_buffers are allocated 12GB and Shared_pool to 3 GB on both the machine.

We are using ASM (stripe size 1mb default), ASSM, and local extent management.  

Table has 22 columns and 4 indexes, 2 column primary key, 2 (3 column indexes) and 1 (1 column index). Table is range partitioned on date column and currently has 30 partitions and all the inserts are going to all the 30 partitions, we already done all the filtering at application layer so that there is very less internodes communication and both the RAC nodes are inserting into 15 separate partitions.

I checked the wait events and db file sequential read is now consuming about 70% of total time and most of the time is spent on both the 3 column indexes of the table. What options can we try or what should be the sequence of steps to follow to reduce these waits and increase the insert performance.  




http://www.freelists.org/webpage/oracle-l Received on Thu Feb 28 2008 - 10:38:43 CST

Original text of this message