Strange Memory Consumption Problem DOA 4.1 / BDS 2006

I've been using DOA for years and not experienced an error like this. I have an application created using BDS 2006 using a Direct Oracle Access TOracleDataSet that I use to add a record to an existing table that includes a 40K blob that I loaded from a disk file (it's a PDF document). When I execute the Post method, the application appears to freeze - and it's memory footprint grows from 40MB to about 750MB over a 90 second period and then the post completes, the memory footprint returns to normal (40MB) and the application once again has control and is responsive. This is against an Oracle 10.2.0.2 RAC database that seems to work just fine. Once would expect the post to complete in less than one second, not ninety seconds or need 700+MB of RAM to do the job.

I am using the Oracle client that comes with Oracle XE, and have also tried the latest InstaClient. And this behavior is observed on other PC's I've tried as well.

Has anyone ever experienced anything like this before? Any ideas at all. I'm really at a loss to explain the behavior of the post method.

- Jim
 
I don't know what causes the problem, but perhaps you can use the Oracle Monitor to find our where these 90 seconds are spent?
 
The problem has been fixed. I was using the append method instead of the insert method to add a record to the table prior to calling post. Apparently the post process was bringing back 100% of the data in the table into the client's memory in order to save all the data in the proper order (or something very similar). I'm not sure if this is documented anywhere or not, if it is, I guessed I missed it.

My advice to everyone would be to use the insert method instead of the append method with adding records to a table that contains a BLOB field (or probably any other table that has a lot of data in it).

Thanks for the reply Marco.
- Jim
 
Back
Top