I've implemented a simple way of paging records. What do you guys think of these stats?
The data file size: 395MBThe number of rows: 1,310,720The structure: [CategoryID], [Sequence], [Name] , [Description], [CreatedDate], [CreatedBy] , [ModifiedDate], [ModifiedBy] , [IsDeleted] , [DeletedDate], [DeletedBy]Index: CategoryID IDENTITY field.
Extracting 20 Records from record 1,300,000 onwards takes 16 seconds - complete from db to creating the entities and binding to the grid. The sample app used was the SampleKit.
What do you guys think? ? ?
Firedancer wrote:Extracting 20 Records from record 1,300,000 onwards takes 16 seconds - complete from db to creating the entities and binding to the grid. The sample app used was the SampleKit. What do you guys think? ? ?
It sounds like a great feature and the performance is impressive. Do tell us more about this paging in detail. I do have a few questions though:
1. Does it provide users the option like the way dataSet.Fill(myDataSet, StartRecord, MaxRecords, "Orders") to specify the starting record and the number of records set in the page size for binding to UI controls?
2. Does it provide users the option of either return the entire query and keep it in cache for local access even though only the page size is displayed in the UI control and page back and forth when the user click the button or an arrow, or only return the exact number of records specified in the page size and the user has to requery each time to the server for a new page?
Thanh wrote: It sounds like a great feature and the performance is impressive. Do tell us more about this paging in detail. I do have a few questions though:
To be honest, I think I can squeeze more performance by implementing the complex paging mechanism that I built in the framework's predecessors. But it requires many parameters to be passed in. I have a feeling that performance should be better.
The current paging thing is kinda lame, I just loop the dataReader. Bet you guys didn't think of that huh?
Thanh wrote: 1. Does it provide users the option like the way dataSet.Fill(myDataSet, StartRecord, MaxRecords, "Orders") to specify the starting record and the number of records set in the page size for binding to UI controls?
Yeah! You get to specify StartRecord and PageSize in the Populate methods. Looks like you can't wait.
Thanh wrote: 2. Does it provide users the option of either return the entire query and keep it in cache for local access even though only the page size is displayed in the UI control and page back and forth when the user click the button or an arrow, or only return the exact number of records specified in the page size and the user has to requery each time to the server for a new page?
It is up to you though. The entities are serializable, so you should be able to keep them in the cache.
Firedancer wrote:Yeah! You get to specify StartRecord and PageSize in the Populate methods. Looks like you can't wait.
My opinion... would StartRecord --> PageNo be a better choice?