[ 
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

        

Reply via email to