Hi,
I created an application that inserts a number of records into a certain table. The problem is that the 6 VARCHAR2(500) columns of this table are indexed, and when inserts are done on this table, the tkprof disk access value increases 6 times from ~2000 to ~12000. I dropped these indexes and the disk access decreased to the ~2000 value so it seems that my hypothesis is correct. I also tried increasing the db_cache_size to around 350 MB in the hopes that the disk access would decrease since the DBWR process would not be invoked since the buffer cache would keep on holding the dirty data(and rebuilding of indexes), but I was only able to reduce the total time by about 100 seconds.
Dropping and recreating the indexes might not be an option since the application logic must fall within the global transaction. Can I "hide" dropping and recreating the indexes within an autonomous transaction so that the DML done within the global transaction can still be rolled back?
Any help is appreciated.
Ron
I created an application that inserts a number of records into a certain table. The problem is that the 6 VARCHAR2(500) columns of this table are indexed, and when inserts are done on this table, the tkprof disk access value increases 6 times from ~2000 to ~12000. I dropped these indexes and the disk access decreased to the ~2000 value so it seems that my hypothesis is correct. I also tried increasing the db_cache_size to around 350 MB in the hopes that the disk access would decrease since the DBWR process would not be invoked since the buffer cache would keep on holding the dirty data(and rebuilding of indexes), but I was only able to reduce the total time by about 100 seconds.
Dropping and recreating the indexes might not be an option since the application logic must fall within the global transaction. Can I "hide" dropping and recreating the indexes within an autonomous transaction so that the DML done within the global transaction can still be rolled back?
Any help is appreciated.
Ron