当前位置:  开发笔记 > 运维 > 正文

一个复杂的查询与多个简单查询

如何解决《一个复杂的查询与多个简单查询》经验,为你挑选了2个好方法。

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

对于复杂的查询,您必须减少对数据库的影响,但课程将承担更多责任.

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

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



1> cletus..:

这里的一般经验法则是服务器往返是昂贵的(相对于典型查询需要多长时间),因此指导原则是您希望最小化它们.基本上每个一对多连接可能会使结果集倍增,因此我接近这个方法是继续加入,直到结果集太大或查询执行时间太长(通常大约1-5秒).

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

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

更常见的是必须修复具有可怕性能的系统,这在很大程度上是由于执行单独的查询(特别是相关查询)而不是连接.



2> Rorick..:

我不认为任何选择实际上更好.这取决于您的应用程序特定,体系结构,使用的DBMS和其他因素.

例如,我们在独立解决方案中使用了多个简单查询.但是,当我们将我们的产品发展为轻量级的互联网可访问解决方案时,我们发现我们的框架产生了大量的请求,并且导致网络延迟导致性能下降.因此,我们充分重新设计了使用聚合复杂查询的框架.与此同时,我们仍然维护着我们的独立解决方案,并从Oracle Light迁移到Apache Derby.我们再一次发现,一些新的复杂查询应该简化,因为Derby执行的时间太长了.

所以看看你真正的问题并适当地解决它.我认为,如果没有针对它们的强烈目标,那么简单的查询就有利于开始.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有