views:

359

answers:

3

I did notice the statement on Subsonics page that it can handle 100000+ files, but we would need to handle information for up to 1 million songs. Do we know what the 100000 limitation is from -- is it based on database speed, hard drive capacity, or is that simply all that it has been tested with?

Could you share some proven examples about this?

+2  A: 

Did the statement you saw refer to files or tables? I do recall a statement that went along the lines that sonic could process 1,000's of tables, but you will be waiting a while. This refers to the process of building the classes and has nothing to do with processing of records. In my experience, and speaking very generally, 1 million rows is a relatively small database. But its not the size, its the way you use it and when it comes to databases if you use it the wrong way, you can bring a small database on a fast server to its knees. I'd have no hesitation using Subsonic to access a table containing a million rows, but as for a proven example, Im not sure what you are asking for.

Zapatta
+1  A: 

This question goes back to what SubSonic is and how SubSonic works. SubSonic is more than just an ORM(Object Relational Mapper). SubSonic is an ORM with awesome Query Builder and some helpful web controls to get you up and going in no time. If you have say 1 million records in a table you are never going to want to do a

Select * From GinormousSongsTable

. It would take for ever for your database to return that many rows. More Realisticaly you are going to want to do something like this

Select Top 50 * FROM GinormousSongsTable WHERE catagory = 'Rock'

This is Where SubSonic will save you loads of time. SubSonic can create queries that will handle paging or the top functionality or whatever else you are looking for. If you want you can return the 50 Records as a GinormousSongsTableCollection so that now you have the advantages of strongly typed object or if you need the raw speed of a DataReader then you can return the Query as a DataReader and have the same native speed as if you went to all of the trouble and created your own Connection, Command, Parameters etc. SubSonic Scales well and lets you do what you need to.

runxc1 Bret Ferrier
+1  A: 

There are already a number of questions that discuss SubSonic performance you should probably read through those:

http://stackoverflow.com/questions/149557/using-subsonic-for-potentially-heavily-accessed-aspnet-mvc-application

http://stackoverflow.com/questions/146087/best-performing-orm-for-net

http://stackoverflow.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net-closed

Rob Connery has also written a blog post on SubSonic performance that it would be worth you reading:

http://blog.wekeroad.com/blog/subsonic-scaling/

For what it's worth in my experience SubSonic would have no trouble handling a table with a million rows.

Adam