Thanks Jason. I don't think it is the N+1 problem. Two reasons: 1) The data that I am reading at start up time on the whole are simple lists i.e. I am not reading a list of objects and then subsequently reading each objects children. 2) If it was the N+1 problem I don't see why upgrading to NH 2.1.0 would have an adverse affect.
On Nov 23, 10:04 am, Jason Dentler <[email protected]> wrote: > 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=.
