Try creating a non-unique index on the column you group by. Have you
tried more recent Derby version if you can reproduce that there?

On Mon, Feb 8, 2010 at 3:25 PM, Ronald Rudy <ronchal...@gmail.com> wrote:
> Version is 10.4.2.0, and no I don't - I am actually trying the group by/etc. 
> on another column that is indexed to see if there's any memory benefits..  
> The table isn't optimized for the below statement because in production it 
> will never be executed like that, I'm just trying to monitor some counts 
> while the app is running..
>
>
> On Feb 8, 2010, at 9:21:29 AM, Peter Ondruška wrote:
>
>> What Derby version is this? Do you have an index on groupCol?
>>
>> On Mon, Feb 8, 2010 at 3:11 PM, Ronald Rudy <ronchal...@gmail.com> wrote:
>>> I've gotten to the point where I seem to be able to frequently induce 
>>> OutOfMemoryErrors when executing a statement like this one:
>>>
>>> SELECT groupCol, count(*) FROM myTable GROUP BY groupCol;
>>>
>>> The total number of records doesn't seem terribly large (about 400,000 
>>> records) though while I'm executing the above statement there are likely 
>>> some inserts and deletes happening concurrently.  I don't need anything 
>>> transactional here, I'm really just monitoring a table from a separate 
>>> network connection.
>>>
>>> In our app the database runs in its own JSVC daemon as a NetworkServer with 
>>> 512MB allocated to it.  Page cache size is set to 2000.    Page size should 
>>> be Derby default (4096 I think).
>>>
>>> I cannot be 100% sure that the above is specifically what is causing the 
>>> error, but I can say that I haven't seen memory errors until I started 
>>> monitoring this table frequently and even then I really only saw it when 
>>> the table size started getting a bit bigger (not big by any stretch, but > 
>>> 300k rows).
>>>
>>> The table itself is not really big - there are 7 varchar columns along with 
>>> an ID column.
>>>
>>> In this production-level situation stability is more important than 
>>> performance.  I'd like Derby configured so that no matter what is requested 
>>> SQL wise the daemon itself is not impacted.
>>>
>>> I'd also like to be able to build in some handling code perhaps that 
>>> if/when an OutOfMemoryError is encountered, it will automatically restart - 
>>> for this I might need to add a script with -XX:OnOutOfMemoryError as a JVM 
>>> option unless there's some way to handle this internally?
>>>
>>> -Ron
>
>

Reply via email to