Performance 当存在许多关联时使用NHibernate之类的ORM—性能问题
我创建了一个应用程序(基于web的应用程序),它现在有大量关联。简言之,账户:Performance 当存在许多关联时使用NHibernate之类的ORM—性能问题,performance,nhibernate,web-applications,orm,Performance,Nhibernate,Web Applications,Orm,我创建了一个应用程序(基于web的应用程序),它现在有大量关联。简言之,账户: 有很多用户 有背景 他有很多项目 同样,一个项目: 有很多项目 用户: 有许多任务 以此类推,加载更多关联。我希望这没有什么特别不寻常的。我选择使用NHibernate为我提供一组很好的持久类,映射器定义了所有关联 但这种方法正确吗?对应用程序的每个请求都会加载帐户(因为它是必需的),然后从数据库请求不需要的大量数据。延迟加载是一种选择,但我不知道我最初的方法是否能更好。在那个阶段,我只需要帐户和相关设置
- 有很多用户
- 有背景
- 他有很多项目
- 有很多项目
- 有许多任务
我担心的是,延迟加载可能只是补偿了我这方面糟糕的初始架构。我很清楚,这可能是由于我对NHibernate的内部工作机制知之甚少。因此,如果您对良好实践有任何建议,我将不胜感激。对于NHibernate来说,默认情况下为大多数关联和对象启用延迟加载通常是一种很好的实践,除非您知道您总是需要关联的数据。然后,您可以有选择地切换到即时加载,仅用于在进入优化阶段时效率更高的项目。域驱动设计在理解此类情况时对我帮助很大
在你的情况下,你应该问自己这样一个问题:你真的需要双向关联吗?或者在某些情况下,单向关联就足够了吗?这个决定是架构的一部分。所以你是对的。默认情况下选择双向关联时,延迟加载是一个很大的帮助。但是它可能被认为是一个设计缺陷。好吧,在我看来,您的架构看起来很健康。联想是好的 考虑替代方案: