On the right path.
So I made an Index version of the DBObjects to test this new method. To say the least, it’s been a very inlighting.
For my test each object had to get 1,248 User records 100 times (so I could get an average). As far as just retraving the inital list, the index method worked considerablly faster. This didn’t come as a surprise because it’s just geting all the IDs for all of the user records in the system.
Normal method Retreave List: 3.8 seconds
Index method Retreave List: 0.43 seconds
As I said this isn’t surprising because the index method only fetches 1 out of 5 columns. Now on to actually accessing a property for every item in the list
Normal method Access: 0.0 secionds (around 6,700 ticks)
Index method Access: 3:50.50 minutes (around 850,000,000 ticks)!
The index method lost horribly! It just takes too long to query the database 1,248 times. So far this is pretty much what I expected. Heres the total averages.
Normal Retreave & Access: 2.13 secionds (21,380,733 ticks)
Index Retreave & Access: 1:53.21 minuetes (around 1,132,100,354 ticks)
So far it looks like I’ve been on the right track. In my experiment I did create something neat. For the index I created the abliblity to get a list of objects from the DBList object, with a call like DBList users = new DBList(typeof(DBUser));
One thing I might want to try, is instead of making 1,248 calls to the database, to get batches at a time. So if I want user.id = 1, it’ll actually load the first 100 or so items. That would reduce our class to 13. But still I just don’t see how 13 calls is going to be any faster than our single call to get all 1,248 items.
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.