![]() |
1
2
通常,多个查询效率较低,因为每个查询可能有一个网络往返和一些其他开销。最有效的方法是在最少的查询中准确地检索所需的数据。 另一方面,如果使用批处理,则可以在一次数据库往返中执行多个查询,这可能与在单个查询中访问对象的时间大致相同。 如果你只加载几个对象,那就不重要了。业务逻辑的可维护性更为重要,它很可能取决于您选择的解决方案。 连接和构建对象的复杂性可以通过ORM完成。你不必自己实现这些事情。使用nhibernate,您可以使用复杂的查询或按ID检索单个实例来检索对象。它还支持ado.net的批处理和其他一些重要的性能改进。 |
![]() |
2
1
你的问题不太清楚…如果对象在同一个表中,那么可能应该在一个查询中提取它们,特别是在您已经知道它们的ID的情况下。 |
![]() |
3
1
方案2将更快,因为它减少了网络“往返”。提交每个查询,然后等待服务器编译一个查询计划并执行它,对于您提交的每个查询,都会重复执行它;如果您可以从一个查询中获得所需的信息,那么通常会更快。但是,从性能上讲,只有在查询数百或数千个非常“宽”的记录时才可能注意到这一点。 |