试做了一个项目,共有20个表,在项目开始NHibernate加载并带有一条查询时,居然用时40多秒,怎么回事?不会这么低吧

解决方案 »

  1.   

    不会的。可能是什么地方出了问题。
    我曾经在一个系统中有100个表的,使用了NH,查询的效果和普通的查询效率差不多,如果说查询中涉及到很多表的联合查询,那效率会降低。 需要注意的地方就是不要每次查询都将所有查询到的记录都转换为object,那样效率会下降很多。使用o/r mapping的话,一般适合于较大的应用,比如50张以上的表。
      

  2.   

    ref:http://www.cnblogs.com/jiezhi/category/16057.html
      

  3.   

    还没有找到问题的原因,共23个表.加载Configuration().AddAssembly("Model")耗时11秒,BuildSessionFactory 23秒,执行了两个查询10秒,共计44秒,差得太大了
      

  4.   

    表间关系复杂的查询用nhibernate很够呛  另  建议使用  spring.net nhibernate module
      

  5.   

    查询就自己写把,NHibernate查询的效率是很低的。
      

  6.   

    感谢大家的帮助!我的表里面也有一些关系,但应该不至于加载就11秒吧,而BuildSessionFactory就20多秒.这个问题是不是因为关系的原因,还是有其它的原因?
      

  7.   

    你不会每执行一次数据库操作就去BuildSessionFactory吧?