Simmo, You haven't given much concrete information to examine, but I suspect you have a select N+1 problem. As a test, turn off lazy loading. NH Profiler can probably tell you the exact source of this problem and many others.
Thanks, Jason On Fri, Nov 20, 2009 at 12:13 PM, simmo <[email protected]>wrote: > Hi, > > I have just upgraded from NHibernate 1.2.0.GA to NHIbernate 2.1.0.GA. > The startup time of my application has gone from ~35 seconds (I know > it's not great :o)) to ~75 seconds - even worse!!! Other than changes > to the way nhibernate is configured (i.e. using properties rather than > key / values) and updating one or two namespaces that have changed > between versions, I haven't changed anything. The code has remained > the same. > > When the application starts the server side code reads lists of > entities from numerous tables which are then converted into data > transfer objects to be passed to the front-end via WCF. My initial > hunch was that this was to do with the changes to the way proxies and > lazy loading were handled (between the two versions) meaning that when > I looped through the entities to convert them to data transfer > objects, an additional read was being performed for each entity. I > thought this because when debugging I can see that the > ICriteria.List<T>() method is returning a list of proxy classes. When > I debug the code running with NHibernate 1.2.0 the same method returns > a list of my entities instead. > > I still think I am on thinking along the right lines however, I have > ruled out the exact scenario that I outline above. I have recreated > the call to the List method in a simple console app, seen a list of > proxies returned and a select statement output. If I was right above I > would then expect to see further select statements output as I loop > through the returned proxies - this doesn't happen however. > > To rule out a problem with a specific proxy implementation I have > tried LinFu and Castle. Neither seems to improve startup time > significantly. > > FYI I am using .Net Framework 3.5 and connecting to a SQLServer 2000 > database. The application (or the part that is causing me the > headache) is deployed to IIS 6 and exposes the server side > functionality via WCF. The NHibernate upgrade is part of an ongoing > Infrastructure upgrade. > > Thanks in advance. > > -- > > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=. > > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=.
