4

external join fetching上,Nhibernate文档说:

如果您的数据库支持 ANSI 或 Oracle 样式的外连接,则外连接获取可能会通过限制往返数据库的次数来提高性能(以数据库本身执行更多工作为代价)。外连接获取允许在单个 SQL SELECT 中检索通过多对一、一对多或一对一关联连接的对象图。

我正在尝试决定是否应该在当前项目(使用NHibernate)中使用外连接获取。为此,我将测试有无外连接获取的加载时间。但是我想知道在使用Sql Server 2008时总体上是好还是坏的策略。

使用外部连接获取通常比使用 Sql Server 2008 更好吗?

如何确定是否使用它?(除了通过性能测试和查询分析)

谢谢

4

1 回答 1

4

奇怪的问题。必要时使用外连接获取;某些查询将需要在某些实体上进行外部联接获取。其他查询不会。所以,如果你不需要它,不要急切地使用外连接来获取。您可以在使用 ICriteria API 时为每个关联指定获取类型。

这都是优化的问题,可以在以后完成。我的意思是:假设您有一个对象图,其中某些部分是通过延迟加载检索的,并且在测试之后,如果延迟加载似乎对该特定​​对象图的性能产生负面影响,请检查您是否可以通过使用渴望获得一些东西加载(通过外部连接获取 fi)。

于 2010-02-20T20:27:27.893 回答