One of the most frequent hesitations I hear from people, who haven't yet realized the value of a good ORM, is the worry of performance degradation. Just like any other framework, an ORM can certainly be misused and become a self-fulfilling prophesy for these nay-sayers if basic design considerations have not been examined or if tuning has not been properly performed. Peter Weissbrod, a DBA-oriented software developer, helped me immensely in tuning the last, good-sized project I was involved with. That project had a rule-based engine at its core and made many calls to the database while processing hundreds to thousands of rules during a single HTTP request.
Peter has put together the first of two articles he's writing on the subject of tuning an NHibernate-backed application and has made it available at http://www.codeproject.com/useritems/NHibernate_Perf.asp. In part one of this series, Peter concisely describes the essential tools and basic steps for answering the question "where do I begin for increasing NHibernate performance." Of particular interest are a couple of useful SQL queries for pinpointing your most frequent queries and, more importantly, your most inefficient queries. Definitely worth a read for anyone using NHibernate.
03-03-2007 9:04 PM