yeah i sincerely believe issuing a row count() is an expensive, especially when the row count doesn't change at all
Roger Hand wrote: > >>> any reasonable db keeps a count of the total rows in any given table. > the size() query is most likely select count(*) from foo << > > > > Then I guess Postgres (up until version 8.0 anyway) is not a > "reasonable" database. Unfortunately, getting a row count is typically > an expensive process due to its implementation of MVCC architecture. > > > > -Roger > > > > From: Igor Vaynberg [mailto:[EMAIL PROTECTED] > Sent: Sunday, June 10, 2007 11:38 PM > To: wicket-user@lists.sourceforge.net > Subject: Re: [Wicket-user] ?Contract for > "IteratorIDataProvider.iterator(int first, int count)" ??? > > > > in my experience this wont cause a problem. any reasonable db keeps a > count of the total rows in any given table. the size() query is most > likely select count(*) from foo, which will use that stored count. and > even if there is something more dynamic to it, the db will most likely > put that statement in a cache and use that. > > so basically, dont cry wolf until you actually encounter the problem. > you can play what-if for a long time :) > > -igor > > On 6/10/07, Lec < [EMAIL PROTECTED]> wrote: > > > Igor, > > if calling paging 1,2,3 n.... each time requires a call to > iterator(first, count) and size(), which means a call to db, wouldn't > this > way, it ll give a bottleneck at the database layer? Imagine there are > about > concurrent 5000 users doing the paging....im sure the database will > slowdown > significantly? can it be any way where iterator() can return the size > value > as well, just to reduce to one query rather than 2 queries being made > each > time the paging is executed? > > > > igor.vaynberg wrote: >> >> the iterator() and size() are not meant to be used "together" and > there is >> no, nor ever be, a contract that guarantees any ordering of > invocations >> between these two methods. >> >> size() is meant to return the total number of rows >> >> iterator() is used to return a window that will be displayed >> >> those are the only contracts. >> >> what exactly is the problem? >> >> -Igor >> >> >> On 4/4/06, Frank Silbermann <[EMAIL PROTECTED]> wrote: >>> >>> I have a question about the intended use of the DataTable > components >>> provided in Wicket Extensions. The DataTable relies upon an >>> IDataProvider >>> to provide the data. To do this, we implement: >>> >>> "Iterator iterate(first, count)" >>> >>> Lacking any advice to the contrary, I assumed that this is the method >>> which would retrieve data from the database, but this does not seem > to be >>> working well for me. >>> >>> My database query is parameterized based on page-component model > values, >>> and these may change with each rendering. My problem is that when one >>> rendering presents a short data set, on the next rendering the > DataTable >>> is >>> not always requesting all of the rows. The "count" seems to be > affected >>> by the number of rows returned by the previous rendering. >>> >>> I suspect this is because my implementation of "int > DataProvider.size()" >>> assumes that it will be called _*after*_ "Iterator iterate(first, > count)" >>> pulls down the data - so it's always one rendering behind. >>> >>> Should I give the "int IDataProvider.size()" method the > responsibility >>> for >>> figuring out the query string and going to the database? (How else > would >>> it be able to tell the DataProvider how many rows to request?) >>> >>> >>> >> >> > > -- > View this message in context: > http://www.nabble.com/RE%3A--Contract-for-%22Iterator-IDataProvider.iter > ator%28int-first%2C-int-count%29%22-----tf1395451.html#a11054989 > Sent from the Wicket - User mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------ > - > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > -- View this message in context: http://www.nabble.com/RE%3A--Contract-for-%22Iterator-IDataProvider.iterator%28int-first%2C-int-count%29%22-----tf1395451.html#a11057660 Sent from the Wicket - User mailing list archive at Nabble.com. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user