client-server - 一个复杂查询与多个简单查询

标签 client-server data-access-layer

什么实际上更好?是否有具有复杂查询的类负责加载例如嵌套对象?或者具有简单查询的类负责加载简单对象?

对于复杂的查询,您必须更少地访问数据库,但类将承担更多的责任。

或者简单的查询,您需要更多地访问数据库。然而在这种情况下,每个类将负责加载一种类型的对象。

我所处的情况是加载的对象将被发送到 Flex 应用程序(DTO)。

最佳答案

这里的一般经验法则是服务器往返成本很高(相对于典型查询所需的时间),因此指导原则是您希望最大限度地减少它们。基本上每个一对多连接都可能会增加您的结果集,因此我的方法是继续连接,直到结果集变得太大或查询执行时间变得太长(通常大约为 1-5 秒)。

根据您的平台,您可能能够也可能无法并行执行查询。这是您应该做什么的关键决定因素,因为如果您一次只能执行一个查询,那么分解查询的障碍就会高得多。

有时,值得将某些相对恒定的数据保留在内存中(例如国家/地区信息)或将它们作为单独的查询进行,但根据我的经验,这是相当不寻常的。

更常见的是必须修复性能糟糕的系统,这在很大程度上是由于执行单独的查询(特别是相关查询)而不是联接。

关于client-server - 一个复杂查询与多个简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/684989/

相关文章:

c# - 在 ASP.net 的数据访问层中创建实体的正确方法是什么?

c# - 分层架构中的 Entity Framework - 要遵循的最佳实践?

c# - 数据访问模式类似于存储库但不完全

Java RMI UnmarshalException 和 AWS EC2 服务器

java - 控制Android上的WIFI\蜂窝数据更新频率

java - 向客户端广播消息

Java错误: java.net.BindException:地址已在使用中:JVM_Bindin服务器运行类

c# - 当客户错过接受报价的机会时,应该使用什么 HTTP 响应代码

c# - 如何从.NET用户界面将MySQL连接信息发送到数据访问层