Paging and SQL queries

2007-05-24 Thread Aristedes Maniatis
We have recently been testing our 3 tier Cayenne app with a larger number of records and finding some performance problems with scale. In particular we have a test database with 60,000 student records (the production db will have 120,000). We are using paging (of 25 records) to ensure that

Re: Paging and SQL queries

2007-05-25 Thread Andrus Adamchik
Hi Ari, On May 25, 2007, at 8:11 AM, Aristedes Maniatis wrote: Q1: So, my first question is why is Cayenne doing this? If paging is switched on, shouldn't Cayenne be fetching only the primary keys and then faulting in the particular records it needs in full? The default strategy, as impleme

Re: Paging and SQL queries

2007-05-25 Thread Michael Gentry
I had never used the paginated queries, but I would've bet money that it fetched only the PKs initially and then fully resolved objects on a per-page basis as needed. On large datasets, it is a big win (in time and memory) to do it that way. On smaller datasets, it would be about a wash either w

Re: Paging and SQL queries

2007-05-27 Thread Aristedes Maniatis
On 25/05/2007, at 7:45 PM, Andrus Adamchik wrote: The default strategy, as implemented by org.apache.cayenne.access.IncrementalFaultList, is to run a full query to fully resolve page #1, but only read id columns from the result set for pages 2, 3, etc... This strategy bets that a single

Re: Paging and SQL queries

2007-05-27 Thread Andrus Adamchik
On May 27, 2007, at 2:09 PM, Aristedes Maniatis wrote: I don't quite understand what 'resolvesFirstPage()' refers to. Does it mean 'firstPageResolved()'? Should it be negated here: No. "resolvesFirstPage" really a shorthand for "is it possible to reliably resolve objects on the first pag

Re: Paging and SQL queries

2007-05-28 Thread Andrus Adamchik
On May 28, 2007, at 9:49 AM, Andrus Adamchik wrote: I don't quite understand what 'resolvesFirstPage()' refers to. Does it mean 'firstPageResolved()'? Should it be negated here: No. "resolvesFirstPage" really a shorthand for "is it possible to reliably resolve objects on the first page

Re: Paging and SQL queries

2007-05-28 Thread Aristedes Maniatis
On 28/05/2007, at 4:49 PM, Andrus Adamchik wrote: No. "resolvesFirstPage" really a shorthand for "is it possible to reliably resolve objects on the first page using the existing algorithm". OK. I guess I would have named it isFirstPageResolvable() or canResolveFirstPage(). But from your

Re: Paging and SQL queries

2007-05-28 Thread Andrus Adamchik
On May 28, 2007, at 1:50 PM, Aristedes Maniatis wrote: On 28/05/2007, at 4:49 PM, Andrus Adamchik wrote: No. "resolvesFirstPage" really a shorthand for "is it possible to reliably resolve objects on the first page using the existing algorithm". OK. I guess I would have named it isFirstP