[ http://issues.apache.org/jira/browse/DERBY-1713?page=comments#action_12431902 ] John H. Embretsen commented on DERBY-1713: ------------------------------------------
After trying the 'Derby1713repro' test case some more, I have come to the preliminary conclusion that it is the "ORDER BY" part of the query, combined with the size of the database, that is causing the problem. I reduced the huge query to a rather simple one: SELECT Code FROM Contents ORDER BY Code and still got an OutOfMemoryError with -Xmx32M, using the same database as before. Removing the "ORDER BY" clause drastically reduces memory usage (tenured space usage ~1800 bytes). I also tried the same with a different database (fewer columns), and did not get an OOME. > Memory do not return to the system after Shuting down derby 10.2.1.0, > following an out of memory event > ------------------------------------------------------------------------------------------------------ > > Key: DERBY-1713 > URL: http://issues.apache.org/jira/browse/DERBY-1713 > Project: Derby > Issue Type: Bug > Components: Performance > Affects Versions: 10.2.1.0 > Environment: Windows XP SP2 > JRE 1.6 beta2 > Reporter: Ibrahim > Priority: Critical > Attachments: Derby1713repro.java, test.zip, Test1.java > > > I face a problem when querying large tables. I run the below SQL and it stuck > in this query and throws java heap exception OutOfMemory: > SELECT count(*) FROM <table> WHERE ..... > N.B. I'm using a database of more than 90,000 records (40 MB). I set the > maxHeap to 32 MB (all other settings have the default value, pageCache ... > etc ). > Then, I shutdown the database but the memory is not returned to the system > (and remain 32 MB [max threshold]). I tried to increase the maxHeap to 128 MB > in which it works and releases the memory, so I think the problem is when it > reaches the maxHeap then it seems to not respond to anything such as closing > the connection or shutting down the database. How can I get rid of this? > (because i cannot increase the maxHeap as the database increases, I want to > throw an exception and release the memory) > I'm using this to shutdown the DB: > try{DriverManager.getConnection("jdbc:derby:;shutdown=true");} > catch(SQLException ex){System.err.println("SQLException: " + > ex.getMessage());} > I'm using a memory Profiler for monitoring the memory usage. > Thanks in advanced. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira