Issue 98548 - [MSSQL]Memory leak when opening tables via ODBC
Summary: [MSSQL]Memory leak when opening tables via ODBC
Alias: None
Product: Base
Classification: Application
Component: code (show other issues)
Version: OOo 2.4.1
Hardware: All Windows XP
: P2 Trivial with 1 vote (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
Keywords: performance
Depends on:
Reported: 2009-01-28 08:31 UTC by sos
Modified: 2013-01-29 21:47 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Note You need to log in before you can comment on or make changes to this issue.
Description sos 2009-01-28 08:31:20 UTC
When opening a table or caling a table via a subform and datagrid the used 
memory on the machine is growning depending on the size of a table (several 
MB 's)OO gives this memory back after closing OO.
Native , FlatText and Spreadsheets datbases do not have this behaviour.
ODBC JDBC and alse MySQL connector suffers from this memory leak.
Found it in 2.41 and 3.0
Very easy to verify open and close some tables and check the memory on the 
Comment 1 Frank Schönheit 2009-01-28 10:22:56 UTC
putting into pool, correcting priority
Comment 2 sos 2009-01-28 10:47:12 UTC

"Performance" is maby not the right keyword, its a real ShowStopper, opening 
several tables is "eating up "  all the memory specialy when there are subforms 
involved, then you easyly losse 100's MB in notime !
Comment 3 Frank Schönheit 2009-01-28 11:03:34 UTC
we don't have a better keyword for that ... However, I really think that
unreasonable memory consumption also fits into the "performance" category - this
is not only about speed, but in general about how well OOo uses system resources
(both time and memory), at least in my understanding.

The reason why I added this keyword is that performance is a major goal for OOo
3.1+, and I want to ensure that we deal with this issue here in this course.
Comment 4 sos 2009-01-28 12:56:47 UTC
Thanks for your interest in this problem. I fuly understand the performance 
idea, I call it "ShowStopper" because we are testing OO as frontend to a SQL 
sever and we have complains from our users who there machines runned out of 
memory and stoped most off there aplications with sometimes lost of data etc....
We try to make OO the main aplication for all our users,unfortunely, this days 
most off the data is stored on several SQL servers, if You think using OO for 
this tasks (now and in the future) is not a good Idea, please let me known 
before we start more projects.
We are a Belgian Publisher, we uses OO to produce over 6000 full Color Print 
Pages and we mentain the "freeContent" of hunderd's Webpages with OO In the 
near future we planed to use OO also to store structured Web  on the Webservers 
aan then retrieving this content via OO for Printed Pages.


Comment 5 Frank Schönheit 2009-02-04 08:48:12 UTC
hmm, cannot reproduce with a 20K table (1 PK column and 10 VARCHAR columns, all
columns filled with random 20-character text in all rows) on a MySQL server,
connected via JDBC, in OOo 3.0.
Opening the big table the first time gives 15 MB or so which are used up, but
this then doesn't change anymore - subsequently opening/closing the table lets
the memory consumption go up and down a little, by a few MB, but everything is
given back, as far as I can see.

Could you please try to give a concrete example - a SQL script to generate the
table in question, the version of the DB/driver you use?
Comment 6 sos 2009-02-04 18:38:26 UTC
Hi Frank,
hmm.. I loaded the latest MySQL connector and made a ODBC connection and 
indeed, no leaks not in 2.4 not in 3.0.
I  still find (also for 3.0) the same leaks with the standard Windows ODBC 
driver connected to MSQL 2000.  We planned to move to MySQL anyhow, but or Web 
provider sticks to MSQL, I will aks them for a "open" connection to some 
harmeless tables, then i make a ODB file and drop this here.
Comment 7 sos 2009-02-05 18:44:54 UTC

I found that the acces to or MSQL Webserver is to complex passwords..tct.. But 
anyhow I did some more testing. I think it comes all to the choiche of the 
driver and the SQL server.
ODBC and MSQL = leaking 
ADO and MSQL = no leaking but troubles with some SQL statements and paramatered 
ODBC and MYSQL = no leaking
OO-Native-Connector to MuSQL = minimal leaking
Hope it helps

Comment 8 ludob 2009-06-14 09:07:09 UTC
Last week I issued 102625 (Table Data View + ODBC issues select * from table to
get only key data). By the looks of it, this is the same issue. OOO retrieves
unnecessarily the full table to get only the key values. The impact on the
machines memory depends on the table structure (f.e.large blobs in the table)
and indeed on the odbc driver and database client used.  
This is not an OOO memory leak however. Memory is released when the resultset is
closed, unless the ODBC driver or database client leak memory... 
Comment 9 Mechtilde 2009-07-17 20:16:29 UTC
changing summary

Should be better with version 3.1 and also the upcomming version 3.2 in winter
Comment 10 sos 2010-03-15 12:15:28 UTC
id indeed far more better sinds 3.2 !

= resolved !
Comment 11 sos 2010-05-05 16:58:09 UTC
Drew >> is realy RESOLVED
Comment 12 ocke.janssen 2010-11-26 12:28:45 UTC
Looks like this one is fixed or works now in a newer 3.3 version.
Comment 13 ocke.janssen 2010-11-26 12:29:53 UTC
I'm closing this one. If we have still memory leaks in the newest version, feel
free to reopen it.
Comment 14 sos 2010-11-26 13:47:44 UTC
tested on 3.3 rc6 
32.000 records table and loses still 3-4 MB par opening
Good news, 3.3 is 10% faster when loading all records in Beamer (25 secs vs 30