什么实际上更好?是否有具有复杂查询的类负责加载例如嵌套对象?或者具有简单查询的类负责加载简单对象?
对于复杂的查询,您必须更少地访问数据库,但类将承担更多的责任。
或者简单的查询,您需要更多地访问数据库。然而在这种情况下,每个类将负责加载一种类型的对象。
我所处的情况是加载的对象将被发送到 Flex 应用程序(DTO)。
最佳答案
这里的一般经验法则是服务器往返成本很高(相对于典型查询所需的时间),因此指导原则是您希望最大限度地减少它们。基本上每个一对多连接都可能会增加您的结果集,因此我的方法是继续连接,直到结果集变得太大或查询执行时间变得太长(通常大约为 1-5 秒)。
根据您的平台,您可能能够也可能无法并行执行查询。这是您应该做什么的关键决定因素,因为如果您一次只能执行一个查询,那么分解查询的障碍就会高得多。
有时,值得将某些相对恒定的数据保留在内存中(例如国家/地区信息)或将它们作为单独的查询进行,但根据我的经验,这是相当不寻常的。
更常见的是必须修复性能糟糕的系统,这在很大程度上是由于执行单独的查询(特别是相关查询)而不是联接。
关于client-server - 一个复杂查询与多个简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/684989/