1

I'm working on a new project right now and thinking of using an ORM beyond that of OpenAccess or LLBLGen Pro or Subsonic.This project may have great quantities and hits concurrent,So our performance requirements is very high.

Please compare and recommend it to me. Thanks

Jim.

guaike
  • 2,471
  • 9
  • 31
  • 42
  • 1
    This isn't a question - you might consider getting a bit more specific, such as "which ORM has better performance". Which will probably still result in closure since that's argumentative :). –  Feb 14 '11 at 07:57

1 Answers1

2

Jim,

For the best results in answering this question, you'll need to do your own comparison since your specific requirements and data access scenarios will likely affect the results of any such performance testing.

That said, we use LLBLGen for a high throughput web application and the performance is exceptional. We have found that the big issue is in the application design itself. Using SQL Server Profiler we are able to see (during development) which parts of the application create a lot of hits on the database. The biggest penalty we found was with loading a grid and then doing another database operation OnDataBinding / DataBound events. This creates a huge amount of traffic to the SQL Server database, a lot of reads and a lot of disk swapping. We have been very well served by making sure we get all the data in the first query by making a good design choice when building the set of data/joins/etc. when building the application -- or refactoring it later once we find the performance is slow.

The overhead for LLBLGen, at least, is very minimal. It's fast even when creating huge numbers of objects. The much, much bigger performance hit comes when we make queries that spawn other queries (example above) and our DB reads go through the roof.

You may wish to evaluate both for which one you feel is a better match for your skills and productivity as well.

Mark A
  • 5,881
  • 5
  • 26
  • 34
  • Hi,Thanks for your reply,and i was used LLBLGen for my project,as you mention, provide linq support,it is pretty awesome!! – guaike Feb 22 '11 at 13:02
  • Mark, your problem sounds like SELECT N+1, which can be overcome by prefetch paths (eager loading). :) – Frans Bouma Feb 16 '12 at 09:55