aspose file tools*
The moose likes JDBC and the fly likes Insert statement very heavy Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Insert statement very heavy" Watch "Insert statement very heavy" New topic
Author

Insert statement very heavy

Murad Iqbal
Ranch Hand

Joined: Dec 09, 2003
Posts: 90
Hi all,

I am calling an Oracle stored procedure which runs an Insert statement on a 23 column table. The values supplied to the Insert are through a select statement that collects required data from different tables, does some string concatenation, uses TO_CHAR, Decode, NVL functions and a mixture of all to create values for individual columns. The Select statement also contains a Where clause which does 3 comparisons all of which should be true i.e. (condition AND condition AND condition). One of the conditions looks like this

TO_CHAR(purhc_dt,'DDMMYYYY')||accountnum||corp = trans_id.

The select may return several records, potentially 10-100, which are then inserted.

The result, as expected, the statement is very heavy on the Oracle db and it took ages to do anything before finally running out of temporary tablespace. Any comments/suggestions how to improve this?

Regards,
Murad.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30537
    
150

Murad,
Have you tried running SQL explain to see where all the time goes?


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Shailesh Chandra
Ranch Hand

Joined: Aug 13, 2004
Posts: 1081

Originally posted by Murad Iqbal:

One of the conditions looks like this

TO_CHAR(purhc_dt,'DDMMYYYY')||accountnum||corp = trans_id.

The select may return several records, potentially 10-100, which are then inserted.

The result, as expected, the statement is very heavy on the Oracle db and it took ages to do anything before finally running out of temporary tablespace. Any comments/suggestions how to improve this?



It would be to quick to give any suggestion until we don't see your query but using any function on a column then a comparsion is definetely going to make your select very slow, you need to tune to query first consult your DBA.

For a instance let say you have 10K rows in your table and you want to insert 5 out of them which has some desired purhc_dt.
now using TO_CHAR(purhc_dt,'DDMMYYYY') will convert the all 10,000 rows to string them compare to your desire date.

You need to avoid using function this way.

Think about a exaple below



A query like this will be a number of times faster than a query you sampled above.

Shailesh


Gravitation cannot be held responsible for people falling in love ~ Albert Einstein
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Insert statement very heavy