|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
I have written a Delphi 7 application that imports data from XML into a Firebird 1.5.3 database. The program makes tens of thousands of inserts and there seems to be a MAJOR memory leak in Firebird, because fbserver.exe grow to 200 MB very quickly and then just continues to grow. I am performing a commit every 100 rows or so.. Anyone know a way around this?
All I do is a bunch of inserts in a transaction to various different tables.. Any help or work-around suggestions highly appreciated! PS. Just for the fun of it I tried with Firebird 2 and the memory leak seems much smaller there since fbserver.exe does not grow as rapidly. I can not use 2.0 though and databases created with 2.0 can't seem to be opened in 1.5.3? -- Johan |
|
#2
|
||||
|
||||
|
Quote:
I'd anyway post to the developer mailing list (after having searched it for similar cases) and fill a bug report. Quote:
__________________
My blog about OpenSource Databases PDF tutorials about OSS databases, DBMonster ... Please contribute to Open Source Development, fill bug reports!!! Developer Shed eSupport Commented my.ini/my.cnf (PLEASE ADD YOUR OWN CONFIG TRICK) An introduction to database normalization Natural or Surrogate key Custom ordering for your results Correlated and uncorrelated subqueries Don't turn your outer joins into inner joins |
|
#3
|
|||
|
|||
|
Quote:
I tried commits after every insert. No difference. I can't use FB2.0 for the import utility I'm writing because the main apps are using FB1.5 still and they can't seem to read databases created in FB2.0. I will upgrade to FB2.0 later this year but I would like to get this working asap. |
|
#4
|
||||
|
||||
|
Quote:
|
|
#5
|
|||
|
|||
|
Quote:
If I use the embedded database; the exe of the application grows. If I don't; fbserver.exe grows. |
|
#6
|
|||
|
|||
|
Quote:
1. Are you using commit or commitRetaining? 2. Which Delphi components are you using for DB access? 3. Are you able to post the Delphi code including the SQL? 4. What type of Firebird install are you running? Clive |
|
#7
|
|||
|
|||
|
Quote:
1. Tried both. Makes no difference. 2. Tried with IBX 7.08, IBX 7.11 and even with the latest IBO Beta. Nothing helps. 3. It's posting to a lot of tables and a lot of XML reading code. Not sure how to post that. If someone is experienced in Firebird and got Delphi7 I could send the code or something. 4. Tried both 1.5.3 SuperServer and Embedded. Same result with both. Firebird 2.0 leaks A LOT less using the same code but 1.5.3 leaks like a maniac. |
|
#8
|
|||
|
|||
|
Well, I have Delphi 7 and Firebird and am experienced with both;
but I am not anxious to get in that deep right now. Is there a useful way you can just post (or email me if posting publicly is an issue) the code for the methods that encapsulate setting the insert parameters and the inserts and posts themselves? Is there anything in stored procedures or triggers that could be leaking memory or generating some unanticipated recursion? I use IBObjects for access myself. Not because I think they are better, or would make a difference to your problem. Just because they are committed to remaining Firebird compatible while IBX is not (to my knowledge). I have a number of Firebird projects in long term use and have not experienced this problem. On the other hand, they do not do tens of thousands of inserts at a time. For projects with that level of activity I have been fortunate enough to be able to specify Oracle. Clive. |
![]() |
| Viewing: Dev Shed Forums > Databases > Firebird SQL Development > MAJOR memory leak with bulk inserts.. |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|